您的位置:首页 > 编程语言 > Java开发

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)
,
序列化表格

方法摘要

<U>
Class<? extends U>
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
对象。

<A extends
Annotation>

A
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 TypeEncoding
booleanZ
byteB
charC
class orinterfaceLclassname;
doubleD
floatF
intI
longJ
shortS
类或接口名 classname 是上面指定类的二进制名称。

示例:

 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
复制的描述

返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。(如果没有注释直接存在于此元素上,则返回长度为零的一个数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐