java.lang 类 Class<T>
2014-05-30 11:16
225 查看
java.lang
类 Class<T>
java.lang.Object java.lang.Class<T>
类型参数:
T- 由此
Class对象建模的类的类型。例如,
String.class的类型是
Class<String>。如果将被建模的类未知,则使用
Class<?>。
所有已实现的接口: Serializable,
AnnotatedElement,
GenericDeclaration,
Type
public final class Class<T>extends Objectimplements Serializable, GenericDeclaration,Type, AnnotatedElement
Class类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该
Class对象。基本的 Java 类型(
boolean、
byte、
char、
short、
int、
long、
float和
double)和关键字
void也表示为
Class对象。
Class没有公共构造方法。
Class对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的
defineClass方法自动构造的。
以下示例使用
Class对象来显示对象的类名:
void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }
还可以使用一个类字面值(JLS Section
15.8.2)来获取指定类型(或 void)的
Class对象。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
从以下版本开始: JDK1.0 另请参见:,int,int)]
ClassLoader.defineClass(byte[],int,int),
序列化表格
方法摘要 | ||
---|---|---|
| asSubclass(Class<U> clazz) 强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。 | |
T | cast(Object obj) 将一个对象强制转换成此 Class 对象所表示的类或接口。 | |
boolean | desiredAssertionStatus() 如果要在调用此方法时将要初始化该类,则返回将分配给该类的断言状态。 | |
staticClass<?> | forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class对象。 | |
staticClass<?> | forName(String name,boolean initialize,ClassLoader loader) 使用给定的类加载器,返回与带有给定字符串名的类或接口相关联的 Class对象。 | |
| getAnnotation(Class<A> annotationClass) 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。 | |
Annotation[] | getAnnotations() 返回此元素上存在的所有注释。 | |
String | getCanonicalName() 返回 Java Language Specification 中所定义的底层类的规范化名称。 | |
Class<?>[] | getClasses() 返回一个包含某些 Class对象的数组,这些对象表示属于此 Class对象所表示的类的成员的所有公共类和接口。 | |
ClassLoader | getClassLoader() 返回该类的类加载器。 | |
Class<?> | getComponentType() 返回表示数组组件类型的 Class。 | |
Constructor<T> | getConstructor(Class<?>... parameterTypes) 返回一个 Constructor对象,它反映此 Class对象所表示的类的指定公共构造方法。 | |
Constructor<?>[] | getConstructors() 返回一个包含某些 Constructor对象的数组,这些对象反映此 Class对象所表示的类的所有公共构造方法。 | |
Annotation[] | getDeclaredAnnotations() 返回直接存在于此元素上的所有注释。 | |
Class<?>[] | getDeclaredClasses() 返回 Class对象的一个数组,这些对象反映声明为此 Class对象所表示的类的成员的所有类和接口。 | |
Constructor<T> | getDeclaredConstructor(Class<?>... parameterTypes) 返回一个 Constructor对象,该对象反映此 Class对象所表示的类或接口的指定构造方法。 | |
Constructor<?>[] | getDeclaredConstructors() 返回 Constructor对象的一个数组,这些对象反映此 Class对象表示的类声明的所有构造方法。 | |
Field | getDeclaredField(String name) 返回一个 Field对象,该对象反映此 Class对象所表示的类或接口的指定已声明字段。 | |
Field[] | getDeclaredFields() 返回 Field对象的一个数组,这些对象反映此 Class对象所表示的类或接口所声明的所有字段。 | |
Method | getDeclaredMethod(String name, Class<?>... parameterTypes) 返回一个 Method对象,该对象反映此 Class对象所表示的类或接口的指定已声明方法。 | |
Method[] | getDeclaredMethods() 返回 Method对象的一个数组,这些对象反映此 Class对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。 | |
Class<?> | getDeclaringClass() 如果此 Class对象所表示的类或接口是另一个类的成员,则返回的 Class对象表示该对象的声明类。 | |
Class<?> | getEnclosingClass() 返回底层类的立即封闭类。 | |
Constructor<?> | getEnclosingConstructor() 如果该 Class 对象表示构造方法中的一个本地或匿名类,则返回 Constructor对象,它表示底层类的立即封闭构造方法。 | |
Method | getEnclosingMethod() 如果此 Class 对象表示某一方法中的一个本地或匿名类,则返回 Method对象,它表示底层类的立即封闭方法。 | |
T[] | getEnumConstants() 如果此 Class 对象不表示枚举类型,则返回枚举类的元素或 null。 | |
Field | getField(String name) 返回一个 Field对象,它反映此 Class对象所表示的类或接口的指定公共成员字段。 | |
Field[] | getFields() 返回一个包含某些 Field对象的数组,这些对象反映此 Class对象所表示的类或接口的所有可访问公共字段。 | |
Type[] | getGenericInterfaces() 返回表示某些接口的 Type,这些接口由此对象所表示的类或接口直接实现。 | |
Type | getGenericSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。 | |
Class<?>[] | getInterfaces() 确定此对象所表示的类或接口实现的接口。 | |
Method | getMethod(String name, Class<?>... parameterTypes) 返回一个 Method对象,它反映此 Class对象所表示的类或接口的指定公共成员方法。 | |
Method[] | getMethods() 返回一个包含某些 Method对象的数组,这些对象反映此 Class对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。 | |
int | getModifiers() 返回此类或接口以整数编码的 Java 语言修饰符。 | |
String | getName() 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 | |
Package | getPackage() 获取此类的包。 | |
ProtectionDomain | getProtectionDomain() 返回该类的 ProtectionDomain。 | |
URL | getResource(String name) 查找带有给定名称的资源。 | |
InputStream | getResourceAsStream(String name) 查找具有给定名称的资源。 | |
Object[] | getSigners() 获取此类的标记。 | |
String | getSimpleName() 返回源代码中给出的底层类的简称。 | |
Class<? super T> | getSuperclass() 返回表示此 Class所表示的实体(类、接口、基本类型或 void)的超类的 Class。 | |
TypeVariable<Class<T>>[] | getTypeParameters() 按声明顺序返回 TypeVariable 对象的一个数组,这些对象表示用此 GenericDeclaration 对象所表示的常规声明来声明的类型变量。 | |
boolean | isAnnotation() 如果此 Class 对象表示一个注释类型则返回 true。 | |
boolean | isAnnotationPresent(Class<? extends Annotation> annotationClass) 如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。 | |
boolean | isAnonymousClass() 当且仅当底层类是匿名类时返回 true。 | |
boolean | isArray() 判定此 Class对象是否表示一个数组类。 | |
boolean | isAssignableFrom(Class<?> cls) 判定此 Class对象所表示的类或接口与指定的 Class参数所表示的类或接口是否相同,或是否是其超类或超接口。 | |
boolean | isEnum() 当且仅当该类声明为源代码中的枚举时返回 true。 | |
boolean | isInstance(Object obj) 判定指定的 Object是否与此 Class所表示的对象赋值兼容。 | |
boolean | isInterface() 判定指定的 Class对象是否表示一个接口类型。 | |
boolean | isLocalClass() 当且仅当底层类是本地类时返回 true。 | |
boolean | isMemberClass() 当且仅当底层类是成员类时返回 true。 | |
boolean | isPrimitive() 判定指定的 Class对象是否表示一个基本类型。 | |
boolean | isSynthetic() 如果此类是复合类,则返回 true,否则 false。 | |
T | newInstance() 创建此 Class 对象所表示的类的一个新实例。 | |
String | toString() 将对象转换为字符串。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
方法详细信息 |
---|
toString
publicString toString()
将对象转换为字符串。字符串的表示形式为字符串 "class" 或 "interface" 后面紧跟一个空格,然后是该类的完全限定名,它具有
getName返回的那种格式。如果此
Class对象表示一个基本类型,则此方法返回该基本类型的名称。如果该
Class对象表示 void,则此方法返回 "void"。
覆盖:类
Object中的
toString
返回:表示此 class 对象的字符串。
forName
public staticClass<?> forName(String className)
throws ClassNotFoundException
返回与带有给定字符串名的类或接口相关联的
Class对象。调用此方法等效于:
Class.forName(className, true, currentLoader)
其中
currentLoader表示当前类的定义类加载器。
例如,以下代码片段返回命名为
java.lang.Thread的类的运行时
Class描述符。
Class t = Class.forName("java.lang.Thread")
调用 forName("X") 将导致命名为 X 的类被初始化。
参数:
className- 所需类的完全限定名。 返回:具有指定名的类的
Class对象。 抛出:
LinkageError- 如果链接失败
ExceptionInInitializerError- 如果此方法所激发的初始化失败
ClassNotFoundException- 如果无法定位该类
forName
public staticClass<?> forName(String name,boolean initialize,
ClassLoader loader)
throws ClassNotFoundException
使用给定的类加载器,返回与带有给定字符串名的类或接口相关联的
Class对象。(以
getName所返回的格式)给定一个类或接口的完全限定名,此方法会试图定位、加载和链接该类或接口。指定的类加载器用于加载该类或接口。如果参数
loader为 null,则该类通过引导类加载器加载。只有
initialize参数为
true且以前未被初始化时,才初始化该类。
如果
name表示一个基本类型或 void,则会尝试在未命名的包中定位用户定义的名为
name的类。因此,该方法不能用于获得表示基本类型或 void 的任何
Class对象。
如果
name表示一个数组类,则会加载但不初始化该数组类的组件类型。
例如,在一个实例方法中,表达式:
Class.forName("Foo")
等效于:
Class.forName("Foo", true, this.getClass().getClassLoader())
注意,此方法会抛出与加载、链接或初始化相关的错误,Java Language Specification 的第 12.2、12.3 和 12.4 节对此进行了详细说明。 注意,此方法不检查调用者是否可访问其请求的类。
如果
loader为
null,也存在安全管理器,并且调用者的类加载器不为 null,则此方法通过
RuntimePermission("getClassLoader")权限调用安全管理器的
checkPermission方法,以确保可以访问引导类加载器。
参数:
name- 所需类的完全限定名
initialize- 是否必须初始化类
loader- 用于加载类的类加载器 返回:表示所需类的类对象 抛出:
LinkageError- 如果链接失败
ExceptionInInitializerError- 如果该方法激发的初始化失败
ClassNotFoundException- 如果指定的类加载器无法定位该类从以下版本开始: 1.2 另请参见:
forName(String),
ClassLoader
newInstance
publicT newInstance()
throws InstantiationException,
IllegalAccessException
创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的
new表达式实例化该类。如果该类尚未初始化,则初始化这个类。
注意,此方法传播 null 构造方法所抛出的任何异常,包括已检查的异常。使用此方法可以有效地绕过编译时的异常检查,而在其他情况下编译器都会执行该检查。
Constructor.newInstance方法将该构造方法所抛出的任何异常包装在一个(已检查的)
InvocationTargetException中,从而避免了这一问题。
返回:此对象所表示的类的一个新分配的实例。 抛出:
IllegalAccessException- 如果该类或其 null 构造方法是不可访问的。
InstantiationException- 如果此
Class表示一个抽象类、接口、数组类、基本类型或 void; 或者该类没有 null 构造方法; 或者由于其他某种原因导致实例化失败。
ExceptionInInitializerError- 如果该方法引发的初始化失败。
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝创建该类的新实例
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
isInstance
publicboolean isInstance(Object obj)
判定指定的
Object是否与此
Class所表示的对象赋值兼容。此方法是 Java 语言
instanceof运算符的动态等效方法。如果指定的
Object参数非空,且能够在不引发
ClassCastException的情况下被强制转换成该
Class对象所表示的引用类型,则该方法返回 true;否则返回
false。
特别地,当该
Class对象表示一个已声明的类时,若指定的
Object参数是所表示类(或其任一子类)的一个实例,则此方法返回
true;否则返回
false。如果此
Class对象表示一个数组类,且通过身份转换或扩展引用转换,指定的
Object参数能转换为一个数组类的对象,则返回
true;否则返回
false。如果此
Class对象表示一个接口,且指定
Object参数的类或任一超类实现了此接口,则此方法返回
true;否则返回
false。如果此
Class对象表示一个基本类型,则此方法返回
false。
参数:
obj- 要检查的对象 返回:如果
obj是此类的实例,则返回 true从以下版本开始: JDK1.1
isAssignableFrom
publicboolean isAssignableFrom(Class<?> cls)
判定此
Class对象所表示的类或接口与指定的
Class参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回
true;否则返回
false。如果该
Class表示一个基本类型,且指定的
Class参数正是该
Class对象,则该方法返回
true;否则返回
false。
特别地,通过身份转换或扩展引用转换,此方法能测试指定
Class参数所表示的类型能否转换为此
Class对象所表示的类型。有关详细信息,请参阅
Java Language Specification 的第 5.1.1 和 5.1.4 节。
参数:
cls- 要检查的
Class对象 返回:表明
cls类型的对象能否赋予此类对象的
boolean值 抛出:
NullPointerException- 如果指定的 Class 参数为 null。从以下版本开始: JDK1.1
isInterface
publicboolean isInterface()
判定指定的
Class对象是否表示一个接口类型。
返回:如果此对象表示一个接口,则返回
true;否则返回
false。
isArray
publicboolean isArray()
判定此
Class对象是否表示一个数组类。
返回:如果此对象表示一个数组类,则返回
true;否则返回
false。从以下版本开始: JDK1.1
isPrimitive
publicboolean isPrimitive()
判定指定的
Class对象是否表示一个基本类型。
有九种预定义的
Class对象,表示八个基本类型和 void。这些类对象由 Java 虚拟机创建,与其表示的基本类型同名,即
boolean、
byte、
char、
short、
int、
long、
float和
double。
这些对象仅能通过下列声明为 public static final 的变量访问,也是使此方法返回
true的仅有的几个
Class对象。
返回:当且仅当该类表示一个基本类型时,才返回 true从以下版本开始: JDK1.1 另请参见:
Boolean.TYPE,
Character.TYPE,
Byte.TYPE,
Short.TYPE,
Integer.TYPE,
Long.TYPE,
Float.TYPE,
Double.TYPE,
Void.TYPE
isAnnotation
publicboolean isAnnotation()
如果此 Class 对象表示一个注释类型则返回 true。注意,如果此方法返回 true,则
isInterface()也返回 true,因为所有的注释类型同时也是接口。
返回:如果此类对象表示一个注释类型,则返回 true;否则返回 false从以下版本开始: 1.5
isSynthetic
publicboolean isSynthetic()
如果此类是复合类,则返回 true,否则 false。
返回:当且仅当该类为复合类时才返回 true,Java 语言规范对此作了详细说明。从以下版本开始: 1.5
getName
publicString getName()
以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
如果此类对象表示的是非数组类型的引用类型,则返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明。
如果此类对象表示一个基本类型或 void,则返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String。
如果此类对象表示一个数组类,则名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名。元素类型名的编码如下:
Element Type | Encoding | |
---|---|---|
boolean | Z | |
byte | B | |
char | C | |
class orinterface | Lclassname; | |
double | D | |
float | F | |
int | I | |
long | J | |
short | S |
示例:
String.class.getName()
returns "java.lang.String"
byte.class.getName()
returns "byte"
(new Object[3]).getClass().getName()
returns "[Ljava.lang.Object;"
(newint[3][4][5][6][7][8][9]).getClass().getName()
returns "[[[[[[[I"
返回:此对象所表示的类或接口名。
getClassLoader
publicClassLoader getClassLoader()
返回该类的类加载器。有些实现可能使用 null 来表示引导类加载器。如果该类由引导类加载器加载,则此方法在这类实现中将返回 null。
如果存在安全管理器,并且调用者的类加载器不是 null,也不同于或是请求其类加载器的类的类加载器的祖先,则此方法通过
RuntimePermission("getClassLoader")权限调用此安全管理器的
checkPermission方法,以确保可以访问该类的类加载器。
如果此对象表示一个基本类型或 void,则返回 null。
返回:加载此对象所表示的类或接口的类加载器。 抛出:
SecurityException- 如果存在安全管理器,并且
checkPermission方法拒绝对该类类加载器的访问。另请参见:
ClassLoader,
SecurityManager.checkPermission(java.security.Permission),
RuntimePermission
getTypeParameters
publicTypeVariable<Class<T>>[] getTypeParameters()
按声明顺序返回 TypeVariable 对象的一个数组,这些对象表示用此 GenericDeclaration 对象所表示的常规声明来声明的类型变量。如果底层常规声明不声明类型变量,则返回长度为 0 的数组。
指定者:接口
GenericDeclaration中的
getTypeParameters
返回:表示该常规声明所声明的类型变量的 TypeVariable 对象的一个数组 抛出:
GenericSignatureFormatError- 如果常规声明的常规签名不符合 Java Virtual Machine Specification, 3rd edition 规定的格式从以下版本开始: 1.5
getSuperclass
public Class<? superT> getSuperclass()
返回表示此
Class所表示的实体(类、接口、基本类型或 void)的超类的
Class。如果此
Class表示
Object类、一个接口、一个基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示该
Object类的
Class对象。
返回:此对象所表示的类的超类。
getGenericSuperclass
publicType getGenericSuperclass()
返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。
如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅
ParameterizedType声明。如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示
Object 类的 Class 对象。
返回:此对象所表示的类的超类 抛出:
GenericSignatureFormatError- 如果常规类签名不符合 Java Virtual Machine Specification, 3rd edition 规定的格式
TypeNotPresentException- 如果常规超类引用不存在的类型声明
MalformedParameterizedTypeException- 如果常规超类引用的参数化类型由于某种原因无法实例化从以下版本开始: 1.5
getPackage
publicPackage getPackage()
获取此类的包。此类的类加载器用于查找该包。如果该类是通过引导类加载器加载的,则搜索从 CLASSPATH 加载的包的集合,以查找该类的包。如果所有包对象都不是用该类的类加载器加载的,则返回 null。
只有该类的附属清单中定义了信息,并且类加载器使用该清单中的属性创建了包实例时,包才具有版本和规范属性。
返回:该类的包,如果存档或基本代码中没有可用的包信息,则返回 null。
getInterfaces
publicClass<?>[] getInterfaces()
确定此对象所表示的类或接口实现的接口。
如果此对象表示一个类,则返回值是一个数组,它包含了表示该类所实现的所有接口的对象。数组中接口对象顺序与此对象所表示的类的声明的
implements子句中接口名顺序一致。例如,给定声明:
class Shimmer implements FloorWax, DessertTopping { ... }
设
s的值为
Shimmer的一个实例;表达式:
s.getClass().getInterfaces()[0]
的值为表示
FloorWax接口的
Class对象;
s.getClass().getInterfaces()[1]
的值为表示
DessertTopping接口的
Class对象。
如果此对象表示一个接口,则该数组包含表示该接口扩展的所有接口的对象。数组中接口对象顺序与此对象所表示的接口的声明的
extends子句中接口名顺序一致。
如果此对象表示一个不实现任何接口的类或接口,则此方法返回一个长度为 0 的数组。
如果此对象表示一个基本类型或 void,则此方法返回一个长度为 0 的数组。
返回:该类所实现的接口的一个数组。
getGenericInterfaces
publicType[] getGenericInterfaces()
返回表示某些接口的 Type,这些接口由此对象所表示的类或接口直接实现。
如果超接口是参数化类型,则为它返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示每个超接口的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅
ParameterizedType声明。
如果此对象表示一个类,则返回一个包含这样一些对象的数组,这些对象表示该类实现的所有接口。数组中接口对象顺序与此对象所表示的类的声明的 implements 子句中接口名顺序一致。对于数组类,接口
Cloneable 和 Serializable 以该顺序返回。
如果此对象表示一个接口,则该数组包含表示该接口直接扩展的所有接口的对象。数组中接口对象顺序与此对象所表示的接口的声明的
extends子句中接口名顺序一致。
如果此对象表示一个不实现任何接口的类或接口,则此方法返回一个长度为 0 的数组。
如果此对象表示一个基本类型或 void,则此方法返回一个长度为 0 的数组。
返回:此类所实现的接口的一个数组 抛出:
GenericSignatureFormatError- 如果常规类签名不符合 Java Virtual Machine Specification, 3rd edition 规定的格式
TypeNotPresentException- 如果任意常规超接口引用不存在的类型声明
MalformedParameterizedTypeException- 如果任意常规超接口引用的参数化类型由于某种原因无法实例化从以下版本开始: 1.5
getComponentType
publicClass<?> getComponentType()
返回表示数组组件类型的
Class。如果此类不表示数组类,则此方法返回 null。
返回:如果此类是数组,则返回表示此类组件类型的
Class从以下版本开始: JDK1.1 另请参见:
Array
getModifiers
publicint getModifiers()
返回此类或接口以整数编码的 Java 语言修饰符。修饰符由 Java 虚拟机的
public、
protected、
private、
final、
static、
abstract和
interface对应的常量组成;它们应当使用
Modifier类的方法来解码。
如果底层类是数组类,则其
public、
private和
protected修饰符与其组件类型的修饰符相同。如果此
Class表示一个基本类型或 void,则其
public修饰符始终为
true,
protected和
private修饰符始终为
false。如果此对象表示一个数组类、一个基本类型或 void,则其
final修饰符始终为
true,其接口修饰符始终为
false。该规范没有给定其他修饰符的值。
Java Virtual Machine Specification 中的表 4.1 对修饰符编码进行了详细说明。
返回:表示该类修饰符的
int从以下版本开始: JDK1.1 另请参见:
Modifier
getSigners
publicObject[] getSigners()
获取此类的标记。
返回:此类的标记,若无标记则返回 null。特别地,如果此对象表示一个基本类型或 void,则此方法返回 null。从以下版本开始: JDK1.1
getEnclosingMethod
publicMethod getEnclosingMethod()
如果此 Class 对象表示某一方法中的一个本地或匿名类,则返回
Method对象,它表示底层类的立即封闭方法。否则返回 null。 特别地,如果底层类是由一个类型声明、实例初始值设定项或静态初始值设定项立即封闭的本地或匿名类,则此方法返回
null。
返回:如果该类是本地或匿名类,则返回底层类的立即封闭方法;否则返回 null。从以下版本开始: 1.5
getEnclosingConstructor
publicConstructor<?> getEnclosingConstructor()
如果该 Class 对象表示构造方法中的一个本地或匿名类,则返回
Constructor对象,它表示底层类的立即封闭构造方法。否则返回 null。特别地,如果底层类是由一个类型声明、实例初始值设定项或静态初始值设定项立即封闭的本地或匿名类,则此方法返回
null。
返回:如果该类是本地或匿名类,则返回底层类的立即封闭构造方法;否则返回 null。从以下版本开始: 1.5
getDeclaringClass
publicClass<?> getDeclaringClass()
如果此
Class对象所表示的类或接口是另一个类的成员,则返回的
Class对象表示该对象的声明类。如果该类或接口不是其他类的成员,则此方法返回 null。如果此
Class对象表示一个数组类、基本类型或 void,则此方法返回 null。
返回:该类的声明类从以下版本开始: JDK1.1
getEnclosingClass
publicClass<?> getEnclosingClass()
返回底层类的立即封闭类。如果底层类是顶层类,则此方法返回 null。
返回:底层类的立即封闭类从以下版本开始: 1.5
getSimpleName
publicString getSimpleName()
返回源代码中给出的底层类的简称。如果底层类是匿名的则返回一个空字符串。
数组的简称即附带 "[]" 的组件类型的简称。特别地,组件类型为匿名的数组的简称是 "[]"。
返回:底层类的简称从以下版本开始: 1.5
getCanonicalName
publicString getCanonicalName()
返回 Java Language Specification 中所定义的底层类的规范化名称。如果底层类没有规范化名称(即如果底层类是一个组件类型没有规范化名称的本地类、匿名类或数组),则返回 null。
返回:底层类的规范化名称(如果存在的话);否则返回 null。从以下版本开始: 1.5
isAnonymousClass
publicboolean isAnonymousClass()
当且仅当底层类是匿名类时返回 true。
返回:当且仅当此类是匿名类时,才返回 true。从以下版本开始: 1.5
isLocalClass
publicboolean isLocalClass()
当且仅当底层类是本地类时返回 true。
返回:当且仅当该类是本地类时,才返回 true。从以下版本开始: 1.5
isMemberClass
publicboolean isMemberClass()
当且仅当底层类是成员类时返回 true。
返回:当且仅当该类是成员类时,才返回 true。从以下版本开始: 1.5
getClasses
publicClass<?>[] getClasses()
返回一个包含某些
Class对象的数组,这些对象表示属于此
Class对象所表示的类的成员的所有公共类和接口。包括从超类继承的公共类和接口成员以及该类声明的公共类和接口成员。如果此
Class对象没有公共成员类或接口,则此方法返回一个长度为 0 的数组。如果此
Class对象表示一个基本类型、一个数组类或 void,则此方法也返回一个长度为 0 的数组。
返回:表示该类公共成员的
Class对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)方法拒绝访问该类中的类
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getFields
publicField[] getFields()
throws SecurityException
返回一个包含某些
Field对象的数组,这些对象反映此
Class对象所表示的类或接口的所有可访问公共字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果类或接口没有可访问的公共字段,或者表示一个数组类、一个基本类型或 void,则此方法返回长度为 0 的数组。
特别地,如果该
Class对象表示一个类,则此方法返回该类及其所有超类的公共字段。如果该
Class对象表示一个接口,则此方法返回该接口及其所有超接口的公共字段。
该方法不反映数组类的隐式长度字段。用户代码应使用
Array类的方法来操作数组。
请参阅 Java Language Specification 的第 8.2 和 8.3 节。
返回:表示公共字段的
Field对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问该类中的字段
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getMethods
publicMethod[] getMethods()
throws SecurityException
返回一个包含某些
Method对象的数组,这些对象反映此
Class对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共
member 方法。数组类返回从
Object类继承的所有(公共)member 方法。返回数组中的元素没有排序,也没有任何特定的顺序。如果此
Class对象表示没有公共成员方法的类或接口,或者表示一个基本类型或 void,则此方法返回长度为 0 的数组。
类初始化方法
<clinit>不包含在返回的数组中。如果类声明了带有相同参数类型的多个公共成员方法,则它们都会包含在返回的数组中。
请参阅 Java Language Specification 的第 8.2 和 8.4 节。
返回:表示此类中公共方法的
Method对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问该类中的方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getConstructors
publicConstructor<?>[] getConstructors()
throws SecurityException
返回一个包含某些
Constructor对象的数组,这些对象反映此
Class对象所表示的类的所有公共构造方法。如果该类没有公共构造方法,或者该类是一个数组类,或者该类反映一个基本类型或 void,则返回一个长度为 0 的数组。 注意,此方法返回
Constructor<T>对象的数组(即取自此类构造方法的数组)时,此方法的返回类型是
Constructor<?>[],不是 预期的
Constructor<T>[]。此少量信息的返回类型是必需的,因为从此方法返回之后,该数组可能被修改以保存不同类的
Constructor对象,而这将违反
Constructor<T>[]的类型保证。
返回:表示此类公共构造方法的
Constructor对象数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问该类中的构造方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getField
publicField getField(String name)
throws NoSuchFieldException,
SecurityException
返回一个
Field对象,它反映此
Class对象所表示的类或接口的指定公共成员字段。
name参数是一个
String,用于指定所需字段的简称。
要反映的字段由下面的算法确定。设 C 为此对象所表示的类:
如果 C 声明一个带有指定名的公共字段,则它就是要反映的字段。
如果在第 1 步中没有找到任何字段,则该算法被递归地应用于 C 的每一个直接超接口。直接超接口按其声明顺序进行搜索。
如果在第 1、2 两步没有找到任何字段,且 C 有一个超类 S,则在 S 上递归调用该算法。如果 C 没有超类,则抛出
NoSuchFieldException。
请参阅 Java Language Specification 的第 8.2 和 8.3 节。
参数:
name- 字段名 返回:由
name指定的该类的
Field对象 抛出:
NoSuchFieldException- 如果没有找到带有指定名的字段。
NullPointerException- 如果
name为
null
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问字段
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getMethod
publicMethod getMethod(String name,
Class<?>... parameterTypes)
throws NoSuchMethodException,
SecurityException
返回一个
Method对象,它反映此
Class对象所表示的类或接口的指定公共成员方法。
name参数是一个
String,用于指定所需方法的简称。
parameterTypes参数是按声明顺序标识该方法形参类型的
Class对象的一个数组。如果
parameterTypes为
null,则按空数组处理。
如果
name是 "
<init>;" 或 "
<clinit>",则将引发
NoSuchMethodException。否则,要反映的方法由下面的算法确定(设 C 为此对象所表示的类):
在 C 中搜索任一匹配的方法。如果找不到匹配的方法,则将在 C 的超类上递归调用第 1 步算法。
如果在第 1 步中没有找到任何方法,则在 C 的超接口中搜索匹配的方法。如果找到了这样的方法,则反映该方法。
在 C 类中查找匹配的方法:如果 C 正好声明了一个具有指定名称的公共方法并且恰恰有相同的形参类型,则它就是反映的方法。如果在 C 中找到了多个这样的方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则反映该方法;否则将从中任选一个方法。
注意,类中可以有多个匹配方法,因为尽管 Java 语言禁止类声明带有相同签名但不同返回类型的多个方法,但 Java 虚拟机并不禁止。这增加了虚拟机的灵活性,可以用来实现各种语言特性。例如,可以使用桥方法 (brige method)实现协变返回;桥方法以及将被重写的方法将具有相同的签名,不同的返回类型。
请参阅Java 语言规范 第 8.2 和 8.4 节。
参数:
name- 方法名
parameterTypes- 参数列表 返回:与指定的
name和
parameterTypes匹配的
Method对象
抛出:
NoSuchMethodException- 如果找不到匹配的方法,或者方法名为 "<init>" 或 "<clinit>"
NullPointerException- 如果
name为
null
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getConstructor
publicConstructor<T> getConstructor(Class<?>... parameterTypes)
throws NoSuchMethodException,
SecurityException
返回一个
Constructor对象,它反映此
Class对象所表示的类的指定公共构造方法。
parameterTypes参数是
Class对象的一个数组,这些 Class 对象按声明顺序标识构造方法的形参类型。 如果此
Class对象表示非静态上下文中声明的内部类,则形参类型作为第一个参数包括显示封闭的实例。
要反映的构造方法是此
Class对象所表示的类的公共构造方法,其形参类型与
parameterTypes所指定的参数类型相匹配。
参数:
parameterTypes- 参数数组 返回:与指定的
parameterTypes相匹配的公共构造方法的
Constructor对象 抛出:
NoSuchMethodException- 如果找不到匹配的方法。
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.PUBLIC)拒绝访问构造方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getDeclaredClasses
publicClass<?>[] getDeclaredClasses()
throws SecurityException
返回
Class对象的一个数组,这些对象反映声明为此
Class对象所表示的类的成员的所有类和接口。包括该类所声明的公共、保护、默认(包)访问及私有类和接口,但不包括继承的类和接口。如果该类不将任何类或接口声明为成员,或者此
Class对象表示基本类型、数组类或 void,则此方法返回一个长度为 0 的数组。
返回:
Class对象的数组,表示该类的所有 declared 成员 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问此类中已声明的类
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问此类的包
从以下版本开始: JDK1.1
getDeclaredFields
publicField[] getDeclaredFields()
throws SecurityException
返回
Field对象的一个数组,这些对象反映此
Class对象所表示的类或接口所声明的所有字段。包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此
Class对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。
请参阅 Java Language Specification 的第 8.2 和 8.3 节。
返回:表示此类所有已声明字段的
Field对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问此类中已声明的字段
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getDeclaredMethods
publicMethod[] getDeclaredMethods()
throws SecurityException
返回
Method对象的一个数组,这些对象反映此
Class对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何方法,或者此
Class对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。类初始化方法
<clinit>不包含在返回数组中。如果该类声明带有相同参数类型的多个公共成员方法,则它们都包含在返回的数组中。
请参阅 Java Language Specification 第 8.2 节。
返回:表示此类所有声明方法的
Method对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问该类中已声明的方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getDeclaredConstructors
publicConstructor<?>[] getDeclaredConstructors()
throws SecurityException
返回
Constructor对象的一个数组,这些对象反映此
Class对象表示的类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类存在一个默认构造方法,则它包含在返回的数组中。如果此
Class对象表示一个接口、一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。
请参阅 Java Language Specification 第 8.2 节。
返回:表示此类所有已声明的构造方法的
Constructor对象的数组 抛出:
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问该类中已声明的构造方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问此类的包
从以下版本开始: JDK1.1
getDeclaredField
publicField getDeclaredField(String name)
throws NoSuchFieldException,
SecurityException
返回一个
Field对象,该对象反映此
Class对象所表示的类或接口的指定已声明字段。
name参数是一个
String,它指定所需字段的简称。注意,此方法不反映数组类的
length字段。
参数:
name- 字段名 返回:此类中指定字段的
Field对象 抛出:
NoSuchFieldException- 如果找不到带有指定名称的字段。
NullPointerException- 如果
name为
null
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问已声明字段
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getDeclaredMethod
publicMethod getDeclaredMethod(String name,
Class<?>... parameterTypes)
throws NoSuchMethodException,
SecurityException
返回一个
Method对象,该对象反映此
Class对象所表示的类或接口的指定已声明方法。
name参数是一个
String,它指定所需方法的简称,
parameterTypes参数是
Class对象的一个数组,它按声明顺序标识该方法的形参类型。如果在某个类中声明了带有相同参数类型的多个方法,并且其中有一个方法的返回类型比其他方法的返回类型都特殊,则返回该方法;否则将从中任选一个方法。如果名称是 "<init>” 或 “<clinit>",则引发一个
NoSuchMethodException。
参数:
name- 方法名
parameterTypes- 参数数组 返回:该类与指定名和参数相匹配的方法的
Method对象 抛出:
NoSuchMethodException- 如果找不到匹配的方法。
NullPointerException- 如果
name为
null
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问已声明方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getDeclaredConstructor
publicConstructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
throws NoSuchMethodException,
SecurityException
返回一个
Constructor对象,该对象反映此
Class对象所表示的类或接口的指定构造方法。
parameterTypes参数是
Class对象的一个数组,它按声明顺序标识构造方法的形参类型。 如果此
Class对象表示非静态上下文中声明的内部类,则形参类型作为第一个参数包括显示封闭的实例。
参数:
parameterTypes- 参数数组 返回:带有指定参数列表的构造方法的
Constructor对象 抛出:
NoSuchMethodException- 如果找不到匹配的方法。
SecurityException- 如果存在安全管理器
s,并满足下列任一条件:
调用
s.checkMemberAccess(this, Member.DECLARED)拒绝访问已声明的构造方法
调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess()的调用拒绝访问该类的包
从以下版本开始: JDK1.1
getResourceAsStream
publicInputStream getResourceAsStream(String name)
查找具有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的
class loader 实现的。此方法委托此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给
ClassLoader.getSystemResourceAsStream(java.lang.String)。
在委托前,使用下面的算法从给定的资源名构造一个绝对资源名:
如果 name 以 '/' 开始 ('\u002f'),则绝对资源名是 '/' 后面的
name 的一部分。
否则,绝对名具有以下形式:
modified_package_name/name
其中 modified_package_name 是此对象的包名,该名用 '/' 取代了 '.' ('\u002e')。
参数:
name- 所需资源的名称 返回:一个
InputStream对象;如果找不到带有该名称的资源,则返回 null 抛出:
NullPointerException- 如果
name 是 null从以下版本开始: JDK1.1
getResource
publicURL getResource(String name)
查找带有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的
class loader 实现的。此方法委托给此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给
ClassLoader.getSystemResource(java.lang.String)。
在委托前,使用下面的算法从给定的资源名构造一个绝对资源名:
如果 name 以 '/' ('\u002f') 开始,则绝对资源名是 '/' 后面的
name 的一部分。
否则,绝对名具有以下形式:
modified_package_name/name
其中 modified_package_name 是此对象的包名,该名用 '/' 取代了 '.' ('\u002e')。
参数:
name- 所需资源的名称 返回:一个
URL对象;如果找不到带有该名称的资源,则返回
null从以下版本开始: JDK1.1
getProtectionDomain
publicProtectionDomain getProtectionDomain()
返回该类的
ProtectionDomain。如果安装了安全管理器,则此方法首先通过
RuntimePermission("getProtectionDomain")权限调用安全管理器的
checkPermission方法,以确保可以获取
ProtectionDomain。
返回:该类的 ProtectionDomain 抛出:
SecurityException- 若安全管理器存在,并且其
checkPermission方法不允许获取 ProtectionDomain。从以下版本开始: 1.2 另请参见:
ProtectionDomain,
SecurityManager.checkPermission(java.security.Permission),
RuntimePermission
desiredAssertionStatus
publicboolean desiredAssertionStatus()
如果要在调用此方法时将要初始化该类,则返回将分配给该类的断言状态。如果已经设置了该类的断言状态,则返回其最新设置;如果有包默认断言状态属于此类,则返回最特殊的相关包默认断言状态的最新设置;如果该类不是系统类(即它有类加载器),则返回其类加载器的默认断言状态;否则返回系统类默认断言状态。
很少有程序员需要此方法;它是为 JRE 自身提供的。(它使类能够在初始化时确定是否启用断言。)注意,不保证此方法在(或将要)初始化指定类时返回与(或将与)该指定类相关的实际断言状态。
返回:所需的指定类断言状态。从以下版本开始: 1.4 另请参见:
ClassLoader.setClassAssertionStatus(java.lang.String,boolean),
ClassLoader.setPackageAssertionStatus(java.lang.String,boolean),
ClassLoader.setDefaultAssertionStatus(boolean)
isEnum
publicboolean isEnum()
当且仅当该类声明为源代码中的枚举时返回 true。
返回:当且仅当该类声明为源代码中的枚举时返回 true从以下版本开始: 1.5
getEnumConstants
publicT[] getEnumConstants()
如果此 Class 对象不表示枚举类型,则返回枚举类的元素或 null。
返回:以声明顺序返回一个数组,该数组包含构成此 Class 对象所表示的枚举类的值,或者在此 Class 对象不表示枚举类型时返回 null从以下版本开始: 1.5
cast
publicT cast(Object obj)
将一个对象强制转换成此 Class 对象所表示的类或接口。
参数:
obj- 要强制转换的对象 返回:强制转换返回该对象,若 obj 为 null 则返回 null 抛出:
ClassCastException- 如果该对象不是 null 也不能分配给类型 T。从以下版本开始: 1.5
asSubclass
public <U> Class<? extends U> asSubclass(Class<U> clazz)
强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。检查强制转换的有效性,如果无效则抛出ClassCastException。如果此方法成功了,它将始终返回对此 class 对象的一个引用。
此方法的使用场合为:客户端需要“收缩转换” Class 对象的类型,以便将其传递给某个 API,且该 API 对它愿意接受的 Class 对象进行限制。强制转换会产生一个编译时警告,因为强制转换的正确性无法在运行时检查(因为常规类型是通过擦除实现的)。
返回:此 Class 对象,它被强制转换以表示指定类对象的子类。 抛出:
ClassCastException- 如果该Class 对象不表示指定类的子类(这里“子类”包括该类本身)。从以下版本开始: 1.5
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
从接口
AnnotatedElement复制的描述
如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
指定者:接口
AnnotatedElement中的
getAnnotation
参数:
annotationClass- 对应于注释类型的 Class 对象 返回:如果该元素的指定注释类型的注释存在于此对象上,则返回这些注释,否则返回 null 抛出:
NullPointerException- 如果给定的注释类为 null从以下版本开始: 1.5
isAnnotationPresent
publicboolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
从接口
AnnotatedElement复制的描述
如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。此方法主要是为了便于访问标记注释而设计的。
指定者:接口
AnnotatedElement中的
isAnnotationPresent
参数:
annotationClass- 对应于注释类型的 Class 对象 返回:如果指定注释类型的注释存在于此对象上,则返回 true,否则返回 false 抛出:
NullPointerException- 如果给定的注释类为 null从以下版本开始: 1.5
getAnnotations
publicAnnotation[] getAnnotations()
从接口
AnnotatedElement复制的描述
返回此元素上存在的所有注释。(如果此元素没有注释,则返回长度为零的数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
指定者:接口
AnnotatedElement中的
getAnnotations
返回:此元素上存在的所有注释从以下版本开始: 1.5
getDeclaredAnnotations
publicAnnotation[] getDeclaredAnnotations()
从接口
AnnotatedElement复制的描述
返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。(如果没有注释直接存在于此元素上,则返回长度为零的一个数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
相关文章推荐
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>
- java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
- Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V的解决办法
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androi
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- struts2的<s:iterator>标签 遇到的问题:java.lang.ClassCastException:cannot be cast to java.lang.String
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androidutil.Attri
- mvn 编译错误java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- [问题与解决] java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
- <BEA-000386> <Server subsystem failed. Reason: java.lang.AssertionError: java.lang.reflect.Invocatio
- mvn 编译错误java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- JAVA 泛型 - Class<T>
- java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.<init>(L