T
-类仿照这个
类
对象类型。例如,对
String.class
类型
Class<String>
。如果模拟的类是未知的
Class<?>
。
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement
类
java应用程序的类和接口。枚举是一种阶级和注释是一种接口。每个数组属于一种体现为
类
对象是所有数组的元素类型和维数的共享类。原始的java类型(
boolean
,
byte
,
char
,
short
,
int
,
long
,
float
,和
double
),和关键词
void
也表示为
类
对象。
类
没有公共构造函数。相反类
对象由java虚拟机自动构造当类被加载和调用方法的类装载器的defineClass
。
下面的示例使用一个类
对象将一个对象的类的名称:
void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }
它也可能为命名的类型得到类
对象(或无效)使用类字面。看到The Java™ Language Specification部分15.8.2。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
ClassLoader.defineClass(byte[], int, int)
,
Serialized Form
Modifier and Type | Method and Description |
---|---|
<U> 类<? extends U> |
asSubclass(类<U> clazz)
把这
类 对象代表通过指定类对象表示的类的子类。
|
T |
cast(Object obj)
将对象转换为类或接口的
类 对象表示。
|
boolean |
desiredAssertionStatus()
返回将被分配给该类的断言状态,如果它在调用该方法时被初始化。
|
static 类<?> |
forName(String className)
返回与给定的字符串名称的类或接口相关的
类 对象。
|
static 类<?> |
forName(String name, boolean initialize, ClassLoader loader)
返回
类 对象相关的类或接口的给定的字符串名称,使用给定的类装载器。
|
AnnotatedType[] |
getAnnotatedInterfaces()
返回表示指定的类型
类 对象表示的实体超接口的使用
AnnotatedType 对象数组。
|
AnnotatedType |
getAnnotatedSuperclass()
返回一个
AnnotatedType 表示指定类型的对象表示的实体
类 父类的使用。
|
<A extends Annotation> |
getAnnotation(类<A> annotationClass)
如果存在此注释,则返回此元素的指定类型的注释,否则为空。
|
Annotation[] |
getAnnotations()
返回此元素上的注释。
|
<A extends Annotation> |
getAnnotationsByType(类<A> annotationClass)
返回与此元素关联的注释。
|
String |
getCanonicalName()
返回规范名称的底层阶级的java语言规范定义。
|
类<?>[] |
getClasses()
返回一个数组包含代表所有的公共类和接口的
类 对象表示的类成员
类 对象。
|
ClassLoader |
getClassLoader()
返回类的类装载器。
|
类<?> |
getComponentType()
返回表示数组的组件类型的
类 。
|
Constructor<T> |
getConstructor(类<?>... parameterTypes)
返回一个
Constructor 对象反映指定的公共构造函数的
类 对象表示的类。
|
Constructor<?>[] |
getConstructors()
返回一个数组包含
Constructor 物体反射所有的
类 对象表示的类的公共构造函数。
|
<A extends Annotation> |
getDeclaredAnnotation(类<A> annotationClass)
返回此元素的指定类型的注释,如果这样的注释是直接存在的,否则为空。
|
Annotation[] |
getDeclaredAnnotations()
返回直接在该元素上的注释。
|
<A extends Annotation> |
getDeclaredAnnotationsByType(类<A> annotationClass)
如果这样的注释直接存在或间接存在,则返回指定类型的该元素的注释(s)。
|
类<?>[] |
getDeclaredClasses()
返回一个数组
类 物体反射所有的类和接口声明为这
类 对象表示的类成员。
|
Constructor<T> |
getDeclaredConstructor(类<?>... parameterTypes)
返回一个
Constructor 对象反映指定的构造函数的类或接口的
类 对象表示。
|
Constructor<?>[] |
getDeclaredConstructors()
返回
Constructor 物体反射所有的构造函数通过
类 对象表示的类中声明一个数组。
|
Field |
getDeclaredField(String name)
返回一个对象,反映了
Field 指定声明字段的类或接口的
类 对象表示。
|
Field[] |
getDeclaredFields()
返回
Field 物体反射所有字段的类或接口的
类 对象表示声明数组。
|
方法 |
getDeclaredMethod(String name, 类<?>... parameterTypes)
返回一个
方法 对象反映指定声明方法的类或接口的
类 对象表示。
|
方法[] |
getDeclaredMethods()
返回一个数组包含
方法 物体反射所有声明的方法的类或接口的
类 对象,代表包括公众、保护,默认(包)的访问,和私有方法,但不包括继承的方法。
|
类<?> |
getDeclaringClass()
如果该类或接口的
类 对象代表的是另一个类的一个成员,返回表示它的类被宣布
类 对象。
|
类<?> |
getEnclosingClass()
返回底层类的立即封闭类。
|
Constructor<?> |
getEnclosingConstructor()
如果这
类 对象代表在构造函数中局部或匿名类,返回表示立即封闭底层类的构造函数
Constructor 对象。
|
方法 |
getEnclosingMethod()
如果这
类 对象表示方法内的局部或匿名类,返回表示立即封闭底层类的方法
方法 对象。
|
T[] |
getEnumConstants()
返回此枚举类或空的元素,如果这类对象并不代表一个枚举类型。
|
Field |
getField(String name)
返回一个
Field 对象反映的类或接口的
类 对象表示的指定公共成员。
|
Field[] |
getFields()
返回一个数组包含
Field 物体反射的类或接口的
类 对象代表所有可访问的公共领域。
|
Type[] |
getGenericInterfaces()
返回表示接口,通过该对象表示的类或接口直接实现的
Type s。
|
Type |
getGenericSuperclass()
返回表示实体的直接父类的
Type (类、接口、简单类型或void)的
类 代表。
|
类<?>[] |
getInterfaces()
确定由该对象表示的类或接口实现的接口。
|
方法 |
getMethod(String name, 类<?>... parameterTypes)
返回一个
方法 对象反映的类或接口的
类 对象表示的指定公共成员方法。
|
方法[] |
getMethods()
返回一个数组包含
方法 物体反射所有的类或接口的
类 对象表示的公共方法,包括那些由类或接口的超类和超接口继承的声明。
|
int |
getModifiers()
返回该类或接口的java语言的修饰,在整数编码。
|
String |
getName()
返回单位名称(类,接口,数组类,原始类型,或无效)的
类 对象表示,作为一个
String 。
|
软件包 |
getPackage()
获取此类的包。
|
ProtectionDomain |
getProtectionDomain()
返回该类的
ProtectionDomain 。
|
URL |
getResource(String name)
查找给定名称的资源。
|
InputStream |
getResourceAsStream(String name)
查找给定名称的资源。
|
Object[] |
getSigners()
得到这类的签名。
|
String |
getSimpleName()
返回在源代码中给定的底层类的简单名称。
|
类<? super T> |
getSuperclass()
返回表示的实体(类、接口类的
类 ,原始类型或void)的
类 代表。
|
String |
getTypeName()
返回此类型的名称的信息字符串。
|
TypeVariable<类<T>>[] |
getTypeParameters()
返回
TypeVariable 对象表示的类型变量的声明通过
GenericDeclaration 对象表示的泛型声明一个数组,在声明顺序。
|
boolean |
isAnnotation()
如果这
类 对象表示注释类型返回true。
|
boolean |
isAnnotationPresent(类<? extends Annotation> annotationClass)
如果在这个元素上存在指定类型的注释,则返回真,否则为假。
|
boolean |
isAnonymousClass()
返回
true 当且仅当底层阶级是一个匿名类。
|
boolean |
isArray()
决定如果这
类 对象表示数组类。
|
boolean |
isAssignableFrom(类<?> cls)
确定是否是相同的类或接口的
类 对象表示,或是父类或超类或接口,由指定的
类 参数表示。
|
boolean |
isEnum()
如果这个类被声明为源代码中的枚举返回true。
|
boolean |
isInstance(Object obj)
确定指定
Object 是分配的
类 表示的对象的兼容。
|
boolean |
isInterface()
确定指定
类 对象表示一个接口类型。
|
boolean |
isLocalClass()
返回
true 当且仅当底层的类是一个类。
|
boolean |
isMemberClass()
返回
true 当且仅当底层的类是一个类成员。
|
boolean |
isPrimitive()
确定指定
类 对象代表一个原始类型。
|
boolean |
isSynthetic()
返回
true 如果这个类是一个综合类;否则返回
false 。
|
T |
newInstance()
创建这个
类 对象表示的类的一个新实例。
|
String |
toGenericString()
返回一个描述这个
类 字符串,包括修饰符和类型参数信息。
|
String |
toString()
将对象转换为字符串。
|
public String toString()
getName
。如果这
类
对象代表一个原始类型,此方法返回的原始类型的名称。如果这
类
对象表示无效,此方法返回“无效”。
public String toGenericString()
类
字符串,包括修饰符和类型参数信息。字符串格式化为列表类型修饰符,如果有的话,其次是那种类型(原始类型和
class
,
枚举
,
interface
,或
@
interface
,适当的空字符串),其次是类型的名称,后跟一个角括号逗号分隔的类型的类型参数列表,如果任何。一个空格用来分隔修饰语,并从一种类型中分离任何修饰语。的改性剂发生在典型的顺序。如果有任何类型的参数,该类型参数列表是省略。
请注意,由于正在生成一个类型的运行时表示的信息,不存在于源代码或源代码上的非法的改性剂可能存在。
类
字符串,包括修饰符和类型参数信息
public static 类<?> forName(String className) throws ClassNotFoundException
类
对象。调用此方法等效于:
Class.forName(className, true, currentLoader)
哪里
currentLoader
表示当前类的类装载器的定义。
例如,下面的代码片段返回运行时类
描述符指定的类java.lang.Thread
:
Class t = Class.forName("java.lang.Thread")
一个叫forName("X")
导致阶级命名X
被初始化。
className
-所需的类的完全限定名。
类
对象。
LinkageError
如果连接失败
ExceptionInInitializerError
-如果该方法激发的初始化失败
ClassNotFoundException
-如果类不能定位
public static 类<?> forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException
类
对象相关的类或接口的给定的字符串名称,使用给定的类装载器。一个类或接口的完全限定名称(在相同的格式返回
getName
)这种方法尝试定位、负载和链路的类或接口。指定的类加载程序用于加载类或接口。如果参数
loader
是空的,类的加载通过引导类加载器。类的初始化只有
initialize
参数
true
如果没有初始化之前。
如果name
表示简单类型或无效,将尝试在未命名的包的名字是name
定位一个用户定义的类。因此,这种方法不能用来获得任何代表原始类型或无效的类
对象。
如果name
表示数组类,数组类的成员类型加载但未初始化。
例如,在一个实例方法中表达式:
Class.forName("Foo")
等价于:
Class.forName("Foo", true, this.getClass().getClassLoader())
注意该方法抛出相关的加载错误、链接或初始化为指定的部分12.2,12.3和12.4的java语言规范。请注意,此方法不检查所请求的类是否可以访问它的调用方。
如果loader
是null
,和安全管理器,和调用者的类装载器是无效的,那么这个方法调用一个RuntimePermission("getClassLoader")
权限以确保可以访问引导类加载器的安全经理的checkPermission
方法。
name
-
initialize
-如果
true
类将被初始化。看到java语言规范12.4节。
loader
-类装载器的类必须装
LinkageError
如果连接失败
ExceptionInInitializerError
-如果该方法激发的初始化失败
ClassNotFoundException
-如果类不能被指定的类装载器位于
forName(String)
,
ClassLoader
public T newInstance() throws InstantiationException, IllegalAccessException
类
对象表示的类的一个新实例。实例化类似用一个空的参数列表
new
表达。如果没有初始化已初始化的类,则初始化。
注意,这种方法传播的默认构造函数抛出的任何异常,包括一个检查的异常。使用这种方法有效地绕过编译时的异常检查,否则将被编译器执行的。的Constructor.newInstance
方法用任何例外在构造函数抛出的避免了这个问题(检查)InvocationTargetException
。
IllegalAccessException
如果类或其默认构造函数不可访问。
InstantiationException
-如果这
类
表示一个抽象类,接口,数组类,原始类型,或无效;或如果该类没有默认构造函数;或者因为其他原因不能实例化。
ExceptionInInitializerError
-如果该方法激发的初始化失败。
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public boolean isInstance(Object obj)
Object
是分配的
类
表示的对象的兼容。这种方法是java语言的
instanceof
算子的动态等值。该方法返回
true
如果指定
Object
争论是非空的,可以转换为代表的这一
类
对象而提高了
ClassCastException.
返回
false
否则引用类型。
具体来说,如果这类
对象代表一个类声明,如果指定的Object
参数是代表类的一个实例方法返回true
(或其任何子类);它返回false
否则。如果这类
对象表示数组类,此方法返回true
如果指定Object
论点可以被转换成由身份转换的数组类的一个对象或一个拓宽引用转换;它返回false
否则。如果这类
对象表示一个接口,此方法返回true
如果类或超类的指定Object
参数实现此接口;它返回false
否则。如果这类
对象代表一个原始类型,此方法返回false
。
obj
-检查对象
obj
是这个类的实例
public boolean isAssignableFrom(类<?> cls)
类
对象表示,或是父类或超类或接口,由指定的
类
参数表示。它返回
true
如果如此;否则返回
false
。如果这
类
对象代表一个原始类型,此方法返回
true
如果指定
类
参数正是这
类
对象;否则返回
false
。
具体而言,该方法测试是否由指定的类
参数表示的类型可以转换为类型的类
对象表示通过身份转换或通过拓宽引用转换。查看java语言规范5.1.1和5.1.4节详情。
cls
-
类
对象进行检查
cls
类型的对象可以被分配到这个类的对象的
boolean
价值
NullPointerException
-如果指定类参数为空。
public boolean isInterface()
类
对象表示一个接口类型。
true
如果该对象表示一个接口;
false
否则。
public boolean isArray()
类
对象表示数组类。
true
如果该对象表示数组类;
false
否则。
public boolean isPrimitive()
类
对象代表一个原始类型。
有九个预定义的类
对象代表八种基本类型无效。这些是由java虚拟机创建的,并具有相同的名称,它们代表原始类型,即boolean
,byte
,char
,short
,int
,long
,float
,和double
。
这些对象只能够通过公共静态变量访问,并且是唯一的类
对象,该方法返回true
。
Boolean.TYPE
,
Character.TYPE
,
Byte.TYPE
,
Short.TYPE
,
Integer.TYPE
,
Long.TYPE
,
Float.TYPE
,
Double.TYPE
,
Void.TYPE
public boolean isAnnotation()
类
对象表示注释类型返回true。注意,如果此方法返回true,
isInterface()
也会返回true,所有标注类型也接口。
true
该Class对象是否表示注释类型;
false
否则
public boolean isSynthetic()
true
如果这个类是一个综合类;否则返回
false
。
true
当且仅当这个类是一个综合类的java语言规范定义。
public String getName()
类
对象表示,作为一个
String
如果这个类的对象代表一个引用类型,而不是数组类型,则该类的二进制名称返回指定的The Java™ Language Specification。
如果该类对象表示简单类型或无效,那么返回的名称是一个String
等于相应简单类型或无效的java语言的关键字。
如果这个类对象代表一个类的数组,然后名称的内部形式由元素类型的前面由一个或多个“[
'字代表数组的嵌套深度的名字。元素类型名称的编码如下:
Element Type Encoding boolean Z byte B char C class or interface 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;" (new int[3][4][5][6][7][8][9]).getClass().getName() returns "[[[[[[[I"
public ClassLoader getClassLoader()
如果安全管理器,和调用者的类装载器是无效的和调用者的类装载器是不一样的或祖先类请求其类加载器的类装载器,那么这个方法调用一个RuntimePermission("getClassLoader")
权限以确保可以访问该类的类装载器保安部经理的checkPermission
方法。
如果此对象表示一个原始类型或空,则返回。
SecurityException
-如果存在一个安全管理及其
checkPermission
方法拒绝访问该类的类加载器。
ClassLoader
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public TypeVariable<类<T>>[] getTypeParameters()
GenericDeclaration
对象表示的泛型声明
TypeVariable
对象的数组,在声明顺序。返回一个长度为0的数组,如果下一个基本的泛型声明声明没有类型变量。
getTypeParameters
接口
GenericDeclaration
TypeVariable
对象表示的类型的变量声明的泛型声明数组
GenericSignatureFormatError
-如果这个泛型声明泛型签名不符合规定的格式,在
The Java™ Virtual Machine Specification
public 类<? super T> getSuperclass()
类
,原始类型或void)的
类
代表。如果这
类
要么表现的
Object
类、接口、简单类型或无效,则返回null。如果该对象表示数组类则代表
Object
班
类
对象返回。
public Type getGenericSuperclass()
Type
(类、接口、简单类型或void)的
类
代表。
如果父类是参数化类型,返回的Type
对象必须准确地反映源代码中使用的实际类型参数。代表父类的参数类型是如果没有被创建之前创建的。看到为参数化类型的创造过程的语义ParameterizedType
宣言。如果这类
要么表现的Object
类、接口、简单类型或无效,则返回null。如果该对象表示数组类则代表Object
班类
对象返回。
GenericSignatureFormatError
如果泛型类签名不符合规定的格式,在
The Java™ Virtual Machine Specification
TypeNotPresentException
如果泛型类是指一个不存在的类型声明
MalformedParameterizedTypeException
如果通用的父类是参数化类型,不能实例化的任何理由
public 软件包 getPackage()
只有当在“伴随类”的清单中定义了信息,并且如果类装载器创建了包实例与属性从清单中的属性时,包才有版本和规范的属性。
public 类<?>[] getInterfaces()
如果这个对象表示一个类,返回值是一个数组,包含表示类实现的所有接口的对象。在数组中对应的该对象表示的类声明的implements
条款的接口名称顺序接口对象的顺序。例如,给出了声明:
class Shimmer implements FloorWax, DessertTopping { ... }
假设
s
价值是
Shimmer
实例;表达式的值:
s.getClass().getInterfaces()[0]
是代表
FloorWax
类
接口的对象;和值:
s.getClass().getInterfaces()[1]
是代表
DessertTopping
类
接口的对象。
如果此对象表示一个接口,该数组包含表示接口扩展的所有接口的对象。在数组中对应的该对象表示的接口声明的extends
条款的接口名称顺序接口对象的顺序。
如果这个对象表示一个实现没有接口的类或接口,则该方法返回一个长度为0的数组。
如果这个对象表示一个原始类型或空白,则该方法返回一个长度为0的数组。
如果这类
对象代表数组类型,接口Cloneable
和java.io.Serializable
在顺序返回。
public Type[] getGenericInterfaces()
Type
s。
如果一个超是一个参数化类型的对象,Type
返回它必须准确地反映源代码中使用的实际类型参数。代表每个超参数类型是如果没有被创建之前创建的。看到为参数化类型的创造过程的语义ParameterizedType
宣言。
如果这个对象表示一个类,返回值是一个数组,包含表示类实现的所有接口的对象。在数组中对应的该对象表示的类声明的implements
条款的接口名称顺序接口对象的顺序。在数组的类,接口Cloneable
和Serializable
在顺序返回。
如果此对象表示一个接口,该数组包含表示接口直接扩展的所有接口的对象。在数组中对应的该对象表示的接口声明的extends
条款的接口名称顺序接口对象的顺序。
如果这个对象表示一个实现没有接口的类或接口,则该方法返回一个长度为0的数组。
如果这个对象表示一个原始类型或空白,则该方法返回一个长度为0的数组。
GenericSignatureFormatError
如果泛型类签名不符合规定的格式,在
The Java™ Virtual Machine Specification
TypeNotPresentException
-如果任何通用的超接口是指一个不存在的类型声明
MalformedParameterizedTypeException
-如果任何通用的超接口指的是参数化类型,不能实例化的任何理由
public 类<?> getComponentType()
类
表示数组的组件类型。如果这个类不代表一个数组类,则此方法返回空。
类
Array
public int getModifiers()
public
,
protected
,
private
,
final
,
static
,
abstract
和
interface
;他们应该使用类的方法
Modifier
解码。
如果基础类的数组类,那么它的public
,private
和protected
修饰符的组件类型相同。如果这类
表示简单类型或无效,其public
修饰符总是true
,及其protected
和private
修饰符总是false
。如果该对象表示数组类,简单类型或无效的,那么它的final
修饰符总是true
及其界面改性剂总是false
。其他修饰符的值在规范中未确定。
修改编码是在java虚拟机的规范定义,表4.1。
int
Modifier
public Object[] getSigners()
public 方法 getEnclosingMethod() throws SecurityException
类
对象表示方法内的局部或匿名类,返回表示立即封闭底层类的方法
方法
对象。返回
null
否则。特别是,该方法返回
null
如果基础班是一个局部或匿名类立即封闭的类型声明,实例初始化或静态初始化器。
null
。
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
s.checkPermission
RuntimePermission("accessDeclaredMembers")
否认在外围类的方法访问s.checkPackageAccess()
拒绝访问外围类的封装public Constructor<?> getEnclosingConstructor() throws SecurityException
类
对象代表在构造函数中局部或匿名类,返回表示立即封闭底层类的构造函数
Constructor
对象。返回
null
否则。特别是,该方法返回
null
如果基础班是一个局部或匿名类立即封闭的类型声明,实例初始化或静态初始化器。
null
。
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
s.checkPermission
RuntimePermission("accessDeclaredMembers")
否认在外围类的构造函数的访问s.checkPackageAccess()
拒绝访问外围类的封装public 类<?> getDeclaringClass() throws SecurityException
类
对象代表的是另一个类的一个成员,返回表示它的类被宣布
类
对象。如果这个类或接口不是任何其他类的成员,此方法将返回为空。如果这
类
对象表示数组类,原始类型,或无效,则该方法返回null。
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器用于声明类和调用
s.checkPackageAccess()
拒绝访问声明类的封装
public 类<?> getEnclosingClass() throws SecurityException
null
。
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的外围类的调用和
s.checkPackageAccess()
拒绝访问外围类的封装
public String getSimpleName()
数组的简单名称是“添加”的组件类型的简单名称。特别是,一个组件类型为匿名的数组的简单名称是“[ ]”。
public String getTypeName()
getTypeName
接口
Type
public String getCanonicalName()
null
。
public boolean isAnonymousClass()
true
当且仅当底层阶级是一个匿名类。
true
当且仅当这个类是一个匿名类。
public boolean isLocalClass()
true
当且仅当底层的类是一个类。
true
当且仅当这个类是一个类。
public boolean isMemberClass()
true
当且仅当底层的类是一个类成员。
true
当且仅当这个类是一个类成员。
public 类<?>[] getClasses()
类
对象表示的类成员
类
对象。这包括公共类和接口成员的声明的类从父类继承的公共类和接口成员。如果这
类
对象没有公共成员类或接口,方法返回的数组长度为0。此方法返回的数组长度也为0如果这
类
对象表示简单类型、数组类,或无效。
类
对象数组
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public Field[] getFields() throws SecurityException
Field
物体反射的类或接口的
类
对象代表所有可访问的公共领域。
如果这类
对象表示的类或接口没有开放的公共领域,那么这个方法返回的数组长度为0。
如果这类
对象代表一个类,那么这个方法返回类和其所有父类的公共领域。
如果这类
对象表示一个接口,那么这个方法返回的接口和它所有的超接口等。
如果这类
对象代表数组类型,原始类型,或无效,则该方法返回的数组长度为0。
返回的数组中的元素没有排序,并没有在任何特定的顺序。
Field
对象数组
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public 方法[] getMethods() throws SecurityException
方法
物体反射所有的类或接口的
类
对象表示的公共方法,包括那些由类或接口的超类和超接口继承的声明。
如果这类
对象代表一个类有多个公共方法具有相同的名称和参数类型,但不同的返回类型,那么返回的数组的每一个这样的方法方法
对象。
如果这类
对象代表一个类的初始化方法<clinit>
类型,然后返回的数组没有相应的方法
对象。
如果这类
对象代表数组类型,那么返回的数组为每个由Object
数组类型继承的公共方法方法
对象。它不包含clone()
一方法
对象。
如果这类
对象表示一个接口然后返回的数组不包含任何隐式声明的方法Object
。因此,如果没有方法显式声明该接口或其任何超接口然后返回的数组长度为0。(注意,类
对象代表一类总是有公共方法,继承了Object
。)
如果这类
对象表示简单类型或void,那么返回的数组长度为0。
在类或接口的类
对象表示超接口声明的静态方法不被认为是类或接口的成员。
返回的数组中的元素没有排序,并没有在任何特定的顺序。
方法
对象代表该类的公共方法的阵列
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public Constructor<?>[] getConstructors() throws SecurityException
Constructor
物体反射所有的
类
对象表示的类的公共构造函数。如果类没有公共构造函数,则返回一个长度为0的数组,或者如果该类是一个数组类,或如果该类反映了一个原始类型或空。注意,此方法返回一个对象数组
Constructor<T>
(即从这类构造函数Array),该方法的返回类型是
Constructor<?>[]
不
Constructor<T>[]
可能。这一信息较少的返回类型是必要的因为从这个方法返回的数组后,可以修改为不同的阶级有
Constructor
对象,这将违反
Constructor<T>[]
类型担保。
Constructor
对象代表该类的公共构造函数的阵列
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的
s.checkPackageAccess()
类和调用的类装载器拒绝访问该类的包。
public Field getField(String name) throws NoSuchFieldException, SecurityException
Field
对象反映的类或接口的
类
对象表示的指定公共成员。这是一个
String
name
参数用于指定所需字段的简单的名字。
要反映的字段是由如下的算法确定的。让C是这个对象所表示的类或接口:
NoSuchFieldException
抛出。如果这类
对象代表数组类型,那么这个方法没有找到数组类型的length
场。
name
的字段名称
Field
name
指定的对象
NoSuchFieldException
-如果指定名称的字段不存在。
null
name
NullPointerException
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public 方法 getMethod(String name, 类<?>... parameterTypes) throws NoSuchMethodException, SecurityException
方法
对象反映的类或接口的
类
对象表示的指定公共成员方法。这是一个
String
name
参数指定所需的方法简单的名字。的
parameterTypes
参数是
类
对象识别方法的形参类型的数组,在声明的顺序。如果
parameterTypes
是
null
,它被看作是一个空数组。
如果name
是“<init>
”或“<clinit>
“NoSuchMethodException
升起。否则,所反映的方法是由以下的算法确定。让C是这个对象所表示的类或接口:
Object
类,然后递归调用该算法对C的父类Object
,如果C是一个接口,然后C超接口(如果有)正在寻找一个匹配的方法。如果找到了这样的方法,它反映。找到一个类或接口C匹配方法: 如果C声明一个公共方法具有指定名称和完全相同的形参类型,即方法的体现。如果在C中发现了一个以上这样的方法,并且这些方法中的一个具有比其他任何一个更具体的返回类型,则该方法被反射,否则的方法之一是任意选择的。
注意,可能有一个以上的匹配方法在一类因为java语言禁止类声明多个方法具有相同的签名,但不同的返回类型,java虚拟机不。这增加了在虚拟机中的灵活性,可以用来实现各种语言的功能。例如,协变量可以实现bridge methods;电桥法和被覆盖的方法将具有相同的签名,但返回类型不同。
如果这类
对象代表数组类型,那么这个方法没有找到clone()
方法。
在类或接口的类
对象表示超接口声明的静态方法不被认为是类或接口的成员。
name
-名称的方法
parameterTypes
-参数列表
方法
对象与指定的
name
和
parameterTypes
NoSuchMethodException
-如果没有找到匹配的方法或者叫“
<初始化>
”或“
null
name
NullPointerException
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public Constructor<T> getConstructor(类<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Constructor
对象反映指定的公共构造函数的
类
对象表示的类。的
parameterTypes
参数是
类
对象定义构造函数的形参类型的数组,在声明的顺序。如果这
类
对象代表一个内部类中的非静态语境宣布,形参类型包括显式封闭实例作为第一个参数。
构造函数的反映是这个类
对象的形式参数类型匹配指定的parameterTypes
代表类的公共构造函数。
parameterTypes
-参数数组
parameterTypes
公共构造函数的
Constructor
对象
NoSuchMethodException
-如果没有找到匹配的方法。
SecurityException
如果安全管理器、空值、存在和调用者的类装载器是不一样的或祖先的类装载器的类和调用
s.checkPackageAccess()
拒绝访问该类的包。
public 类<?>[] getDeclaredClasses() throws SecurityException
类
物体反射所有的类和接口声明为这
类
对象表示的类成员。这包括公共的、受保护的、默认的(包)访问,以及类所声明的私有类和接口,但不包括继承的类和接口。如果类没有声明为成员的类或接口方法返回的数组长度为0,或者如果这
类
对象表示简单类型、数组类,或无效。
类
对象数组
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的类这个类中的一样s.checkPackageAccess()
拒绝访问该类的包public Field[] getDeclaredFields() throws SecurityException
Field
物体反射所有字段的类或接口的
类
对象表示声明数组。这包括公共的、受保护的、默认的(包)访问和私有字段,但不包括继承的字段。
如果这类
对象表示的类或接口没有声明的字段,那么这个方法返回的数组长度为0。
如果这类
对象代表数组类型,原始类型,或无效,则该方法返回的数组长度为0。
返回的数组中的元素没有排序,并没有在任何特定的顺序。
Field
对象数组
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝申报领域内这类相同s.checkPackageAccess()
拒绝访问该类的包public 方法[] getDeclaredMethods() throws SecurityException
方法
物体反射所有声明的方法的类或接口的
类
对象,代表包括公众、保护,默认(包)的访问,和私有方法,但不包括继承的方法。
如果这类
对象代表一个类有多个声明的方法具有相同的名称和参数类型,但不同的返回类型,那么返回的数组的每一个这样的方法方法
对象。
如果这类
对象代表一个类型,一类的初始化方法<clinit>
,然后返回的数组没有相应的方法
对象。
如果这类
对象表示的类或接口没有声明的方法,然后返回的数组长度为0。
如果这类
对象代表数组类型,原始类型,或无效,则返回的数组长度为0。
返回的数组中的元素没有排序,并没有在任何特定的顺序。
方法
对象代表所有这一类的数组声明的方法
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的方法在这类相同s.checkPackageAccess()
拒绝访问该类的包public Constructor<?>[] getDeclaredConstructors() throws SecurityException
Constructor
物体反射所有的构造函数通过
类
对象表示的类中声明一个数组。这些都是公共的、受保护的、默认的(包)访问和私有构造函数。返回的数组中的元素没有排序,并没有在任何特定的顺序。如果类有一个默认的构造函数,它被包含在返回的数组中。如果这
类
对象表示一个接口方法返回的数组长度为0,原始类型,数组类,或无效。
查看java语言规范8.2节。
Constructor
对象代表所有声明的构造函数这类数组
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的构造函数在这类相同s.checkPackageAccess()
拒绝访问该类的包public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
Field
指定声明字段的类或接口的
类
对象表示。的
name
参数是一个
String
指定所需字段的简单的名字。
如果这类
对象代表数组类型,那么这个方法没有找到数组类型的length
场。
name
-字段的名称
Field
对象
NoSuchFieldException
-如果指定名称的字段不存在。
null
name
NullPointerException
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的字段相同s.checkPackageAccess()
拒绝访问该类的包public 方法 getDeclaredMethod(String name, 类<?>... parameterTypes) throws NoSuchMethodException, SecurityException
方法
对象反映指定声明方法的类或接口的
类
对象表示。的
name
参数是一个
String
指定所需的方法简单的名字,和
parameterTypes
参数是
类
对象识别方法的形参类型的数组,在声明的顺序。如果在一个类中声明具有相同参数类型的多个方法,并且这些方法中的一个具有比其他任何其他更具体的返回类型,则该方法返回;否则将任意选择其中一种方法之一。如果名称是“
<初始化>
”或“
NoSuchMethodException
升起。
如果这类
对象代表数组类型,那么这个方法没有找到clone()
方法。
name
-名称的方法
parameterTypes
-参数数组
方法
对象
NoSuchMethodException
-如果没有找到匹配的方法。
null
name
NullPointerException
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的方法s.checkPackageAccess()
类和调用的类装载器拒绝访问该类的包public Constructor<T> getDeclaredConstructor(类<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Constructor
对象反映指定的构造函数的类或接口的
类
对象表示。的
parameterTypes
参数是
类
对象定义构造函数的形参类型的数组,在声明的顺序。如果这
类
对象代表一个内部类中的非静态语境宣布,形参类型包括显式封闭实例作为第一个参数。
parameterTypes
-参数数组
Constructor
对象的构造函数
NoSuchMethodException
-如果没有找到匹配的方法。
SecurityException
如果安全管理器,空值,是目前任何满足以下条件:
RuntimePermission("accessDeclaredMembers")
这类和s.checkPermission
方法调用的类装载器拒绝访问声明的构造函数一样s.checkPackageAccess()
拒绝访问该类的包public InputStream getResourceAsStream(String name)
ClassLoader.getSystemResourceAsStream(java.lang.String)
在代表团之前,使用该算法,从给定的资源名称中构造一个绝对资源名称:
name
始于'/'
('\u002f'),那么该资源的绝对叫的name
部分以下的'/'
。
modified_package_name/name
在modified_package_name
与'/'
取代'.'
这个对象的包名('\u002e')。
name
-所需的资源名称
InputStream
对象或
null
如果未找到该名称的资源
null
name
NullPointerException
public URL getResource(String name)
ClassLoader.getSystemResource(java.lang.String)
。
在代表团之前,使用该算法,从给定的资源名称中构造一个绝对资源名称:
name
始于'/'
('\u002f'),那么该资源的绝对叫的name
部分以下的'/'
。
modified_package_name/name
在modified_package_name
与'/'
取代'.'
这个对象的包名('\u002e')。
name
-所需的资源名称
URL
对象或
null
如果未找到该名称的资源
public ProtectionDomain getProtectionDomain()
ProtectionDomain
。如果存在安全管理器安装,这种方法首先调用一个
RuntimePermission("getProtectionDomain")
权限以确保可以得到
ProtectionDomain
安全经理的
checkPermission
方法。
SecurityException
-如果存在一个安全管理及其
checkPermission
方法不允许获得protectiondomain时抛出。
ProtectionDomain
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public boolean desiredAssertionStatus()
很少有程序员会有这种方法的任何需要;它提供的JRE本身的利益。(它允许一个类在它被初始化的时候确定是否应该启用断言。)注意,这种方法不能保证返回(或将)初始化时与指定的类关联的(或将是)的实际断言状态。
public boolean isEnum()
public T[] getEnumConstants()
public T cast(Object obj)
类
对象表示。
obj
-将对象
ClassCastException
-如果对象是无效的和不可转让的类型T。
public <U> 类<? extends U> asSubclass(类<U> clazz)
类
对象代表通过指定类对象表示的类的子类。检查投是有效的,并抛出一个
ClassCastException
如果不是。如果此方法成功,它总是返回这个类对象的引用。
这种方法是非常有用的当客户需要“窄”传递给API的限制类
对象,它愿意接受一个类
对象类型。一个演员将产生一个编译时警告,因为演员的正确性不能在运行时检查(因为通用类型是通过擦除)。
U
型铸造这类对象
clazz
型铸造这类对象的类
类
对象,铸造代表指定类的子类对象。
ClassCastException
-如果这
类
对象并不代表指定类的子类(这里的“类”包括类本身)。
public <A extends Annotation> A getAnnotation(类<A> annotationClass)
AnnotatedElement
getAnnotation
接口
AnnotatedElement
A
-查询并返回如果目前的标注类型
annotationClass
-对应的注释类型的类对象
NullPointerException
如果注释类是无效的
public boolean isAnnotationPresent(类<? extends Annotation> annotationClass)
此方法返回的真实价值相当于:getAnnotation(annotationClass) != null
默认方法的主体被指定为上面的代码。
isAnnotationPresent
接口
AnnotatedElement
annotationClass
-对应的注释类型的类对象
NullPointerException
如果注释类是无效的
public <A extends Annotation> A[] getAnnotationsByType(类<A> annotationClass)
AnnotatedElement
AnnotatedElement.getAnnotation(Class)
之间的区别是,该方法检测如果它的参数是一个可重复的注释类型(年9.6),如果是这样的话,试图找到一个或更多的注释,通过“浏览”式容器标注。此方法的调用方可以自由修改返回的数组;它将对返回给其他调用方的数组没有影响。
getAnnotationsByType
接口
AnnotatedElement
A
-查询并返回如果目前的标注类型
annotationClass
-对应的注释类型的类对象
NullPointerException
如果注释类是无效的
public Annotation[] getAnnotations()
AnnotatedElement
getAnnotations
接口
AnnotatedElement
public <A extends Annotation> A getDeclaredAnnotation(类<A> annotationClass)
AnnotatedElement
getDeclaredAnnotation
接口
AnnotatedElement
A
-查询,如果直接提出返回的标注类型
annotationClass
-对应的注释类型的类对象
NullPointerException
如果注释类是无效的
public <A extends Annotation> A[] getDeclaredAnnotationsByType(类<A> annotationClass)
AnnotatedElement
AnnotatedElement.getDeclaredAnnotation(Class)
之间的区别是,该方法检测如果它的参数是一个可重复的注释类型(年9.6),如果是这样的话,试图找到一个或更多的注释,通过“浏览”式容器注释如果存在。此方法的调用方可以自由修改返回的数组;它将对返回给其他调用方的数组没有影响。
getDeclaredAnnotationsByType
接口
AnnotatedElement
A
-注释类型来查询并返回如果直接或间接存在
annotationClass
-对应的注释类型的类对象
NullPointerException
如果注释类是无效的
public Annotation[] getDeclaredAnnotations()
AnnotatedElement
getDeclaredAnnotations
接口
AnnotatedElement
public AnnotatedType getAnnotatedSuperclass()
AnnotatedType
表示指定类型的对象表示的实体
类
父类的使用。(Foo类型指定父类的使用…延伸foo”不同于
如果这类
对象代表一个类的声明并没有明确说明注释的超类,则返回值是一个AnnotatedType
对象代表没有注释的元素。
如果这类
要么表现的Object
类、接口类型、数组类型、简单类型或无效,返回值是null
。
public AnnotatedType[] getAnnotatedInterfaces()
AnnotatedType
对象代表类型指定的
类
对象表示的实体超接口使用一个数组。(Foo类型指定在使用超…实现了foo”不同于
如果这类
对象代表一个类,返回值是一个数组包含的对象代表接口类型的使用指定该类实现的接口。在数组中对应用于'实施'条款的这类
对象声明的接口类型的对象的顺序为。
如果这类
对象表示一个接口,返回值是一个数组包含的对象代表接口类型使用指定接口的接口直接扩展。在数组中对应于用于“扩展条款”的这一类
对象声明的接口类型的对象的顺序为。
如果这类
对象表示的类或接口的声明并没有明确指出任何注释的超接口,返回值是一个长度为0的数组。
如果这类
对象代表的Object
类,数组类型,原始类型,或无效,返回值是一个长度为0的数组。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.