java.lang.reflect - 快速指南
java.lang.reflect - AccessibleObject Class
介绍 (Introduction)
java.lang.reflect.AccessibleObject类是Field,Method和Constructor对象的基类。 它提供了将反射对象标记为在使用时禁止默认Java语言访问控制检查的功能。 当使用Fields,Methods或Constructors设置或获取字段,调用方法或创建和初始化类的新实例时,将执行对公共,默认(包)访问,受保护和私有成员的访问检查。 在反射对象中设置可访问标志允许具有足够权限的复杂应用程序(例如Java对象序列化或其他持久性机制)以通常被禁止的方式操作对象。
类声明
以下是java.lang.reflect.AccessibleObject类的声明 -
public class AccessibleObject
extends Object
implements AnnotatedElement
构造函数 (Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | protected AccessibleObject() 构造函数:仅供Java虚拟机使用。 |
类方法
Sr.No. | 方法和描述 |
---|---|
1 | <T extends Annotation> T getAnnotation(Class<T> annotationClass) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
2 | Annotation[] getAnnotations() 返回此元素上存在的所有注释。 |
3 | Annotation[] getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
4 | boolean isAccessible() 获取此对象的可访问标志的值。 |
5 | boolean isAnnotationPresent(Class <?extends Annotation> annotationClass) 如果此元素上存在指定类型的注释,则返回true,否则返回false。 |
6 | static void setAccessible(AccessibleObject [] array,boolean flag) 通过单个安全检查为效率设置对象数组的可访问标志的便捷方法(为了提高效率)。 |
7 | void setAccessible(boolean flag) 将此对象的可访问标志设置为指示的布尔值。 |
方法继承
该类继承以下类中的方法 -
- java.lang.Object
java.lang.reflect - Array Class
介绍 (Introduction)
java.lang.reflect.Array类提供了动态创建和访问Java数组的静态方法。 Array允许在get或set操作期间扩展转换,但如果发生缩小转换,则抛出IllegalArgumentException。
类声明
以下是java.lang.reflect.Array类的声明 -
public final class Array
extends Object
类方法
方法继承
该类继承以下类中的方法 -
- java.lang.Object
java.lang.reflect - Constructor<T> Class
介绍 (Introduction)
java.lang.reflect.Constructor类提供有关类的单个构造函数的信息和访问权限。 构造函数允许在将实际参数与newInstance()与底层构造函数的形式参数匹配时进行扩展转换,但如果发生缩小转换则抛出IllegalArgumentException。
类声明
以下是java.lang.reflect.Constructor类的声明 -
public final class Constructor<T>
extends AccessibleObject
implements GenericDeclaration, Member
类方法
Sr.No. | 方法和描述 |
---|---|
1 | boolean equals(Object obj) 将此构造函数与指定的对象进行比较。 |
2 | <T extends Annotation> T getAnnotation(Class<T> annotationClass) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
3 | Annotation[] getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
4 | Class<T> getDeclaringClass() 返回表示声明此Constructor对象表示的构造方法的类的Class对象。 |
5 | Class<?>[] getExceptionTypes() 返回Class对象的数组,这些对象表示声明由此Constructor对象表示的基础构造函数抛出的异常类型。 |
6 | Type[] getGenericExceptionTypes() 返回一个Type对象数组,表示声明由此Constructor对象引发的异常。 |
7 | Type[] getGenericParameterTypes() 返回Type对象的数组,这些对象表示此Constructor对象表示的方法的声明顺序的形式参数类型。 |
8 | int getModifiers() 以整数形式返回此Constructor对象表示的构造方法的Java语言修饰符。 |
9 | String getName() 以字符串形式返回此构造函数的名称。 |
10 | Annotation[][] getParameterAnnotations() 返回一个数组数组,这些数组以声明顺序表示此Constructor对象表示的方法的形式参数的注释。 |
11 | Class<?>[] getParameterTypes() 返回Class对象的数组,这些对象表示由此Constructor对象表示的构造方法的声明顺序的形式参数类型。 |
12 | int hashCode() 返回此Constructor的哈希码。 |
13 | boolean isSynthetic() 如果此构造函数是合成构造函数,则返回true; 否则返回false。 |
14 | boolean isVarArgs() 如果声明此构造函数采用可变数量的参数,则返回true; 否则返回false。 |
15 | T newInstance(Object ... initargs) 使用此Constructor对象表示的构造函数,使用指定的初始化参数创建和初始化构造函数声明类的新实例。 |
16 | String toGenericString() 返回描述此Constructor的字符串,包括类型参数。 |
17 | String toString() 返回描述此Constructor的字符串。 |
方法继承
该类继承以下类中的方法 -
- java.lang.reflect.AccessibleObject
- java.lang.Object
java.lang.reflect - Field Class
介绍 (Introduction)
java.lang.reflect.Field类提供有关类或接口的单个字段的信息和动态访问。 反射字段可以是类(静态)字段或实例字段。 Field允许在get或set访问操作期间进行扩展转换,但如果发生收缩转换则抛出IllegalArgumentException。
类声明
以下是java.lang.reflect.Field类的声明 -
public final class Field
extends AccessibleObject
implements Member
类方法
Sr.No. | 方法和描述 |
---|---|
1 | boolean equals(Object obj) 将此Field与指定的对象进行比较。 |
2 | 对象get(Object obj) 返回指定对象上此Field表示的字段的值。 |
3 | <T extends Annotation> T getAnnotation(Class<T> annotationClass) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
4 | boolean getBoolean(Object obj) 获取静态或实例布尔字段的值。 |
5 | byte getByte(Object obj) 获取静态或实例字节字段的值。 |
6 | char getChar(Object obj) 获取char类型或另一个可通过扩展转换转换为char类型的基本类型的静态或实例字段的值。 |
7 | Annotation[] getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
8 | Class<?> getDeclaringClass() 返回表示声明由此Field对象表示的字段的类或接口的Class对象。 |
9 | double getDouble(Object obj) 获取double类型或另一个可通过扩展转换转换为double类型的基本类型的静态或实例字段的值。 |
10 | float getFloat(Object obj) 获取float类型或另一个可通过扩展转换转换为float类型的基本类型的静态或实例字段的值。 |
11 | Type getGenericType() 返回一个Type对象,该对象表示此Field对象表示的字段的声明类型。 |
12 | int getInt(Object obj) 获取int类型的静态或实例字段的值,或通过扩展转换获得可转换为int类型的另一个基本类型的值。 |
13 | long getLong(Object obj) 获取long类型的静态或实例字段的值,或通过扩展转换转换为long类型的另一个基本类型的值。 |
14 | int getModifiers() 以整数形式返回此Field对象表示的字段的Java语言修饰符。 |
15 | String getName() RReturns此Field对象表示的字段的名称。 |
16 | short getShort(Object obj) 获取类型为short或另一种基本类型的静态或实例字段的值,该类型可通过扩展转换转换为short类型。 |
17 | Class <?> getType() 返回一个Class对象,该对象标识此Field对象表示的字段的声明类型。 |
18 | int hashCode() 返回此Field的哈希码。 |
19 | boolean isEnumConstant() 如果此字段表示枚举类型的元素,则返回true;否则返回true。 否则返回false。 |
20 | boolean isSynthetic() 将指定对象参数上此Field对象表示的字段设置为指定的新值。 |
21 | void setBoolean(Object obj,boolean z) 将字段的值设置为指定对象上的布尔值。 |
22 | void setByte(Object obj,byte b) 将字段的值设置为指定对象上的字节。 |
23 | void setChar(Object obj,char c) 将字段的值设置为指定对象上的char。 |
24 | void setDouble(Object obj,double d) 将字段的值设置为指定对象上的double。 |
25 | void setFloat(Object obj,float f) 将字段的值设置为指定对象上的float。 |
26 | void setInt(Object obj,int i) 将字段的值设置为指定对象上的int。 |
27 | void setLong(Object obj,long l) 将字段的值设置为指定对象上的long。 |
28 | void setShort(Object obj,short s) 将字段的值设置为指定对象的short。 |
29 | String toGenericString() 返回描述此Field的字符串,包括其泛型类型。 |
30 | String toString() 返回描述此Field的字符串。 |
方法继承
该类继承以下类中的方法 -
- java.lang.reflect.AccessibleObject
- java.lang.Object
java.lang.reflect - Method Class
介绍 (Introduction)
java.lang.reflect.Method类提供有关类或接口上的单个方法的信息和访问权限。 反射的方法可以是类方法或实例方法(包括抽象方法)。 方法允许在将实际参数与基础方法的形式参数进行匹配时进行扩展转换,但如果发生缩小转换,则会抛出IllegalArgumentException。
类声明
以下是java.lang.reflect.Method类的声明 -
public final class Method<T>
extends AccessibleObject
implements GenericDeclaration, Member
类方法
Sr.No. | 方法和描述 |
---|---|
1 | boolean equals(Object obj) 将此方法与指定的对象进行比较。 |
2 | <T extends Annotation> T getAnnotation(Class<T> annotationClass) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
3 | Annotation[] getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
4 | Class<T> getDeclaringClass() 返回表示声明此Method对象表示的方法的类的Class对象。 |
5 | Object getDefaultValue() 返回此Method实例表示的注释成员的默认值。 |
6 | Class<?>[] getExceptionTypes() 返回Class对象的数组,这些对象表示声明由此Constructor对象表示的基础构造函数抛出的异常类型。 |
7 | Type[] getGenericExceptionTypes() 返回一个Type对象数组,表示声明由此Constructor对象引发的异常。 |
8 | Type[] getGenericParameterTypes() 返回Type对象的数组,这些对象表示此Constructor对象表示的方法的声明顺序的形式参数类型。 |
9 | Type getGenericReturnType() 返回一个Type对象,该对象表示此Method对象表示的方法的正式返回类型。 |
10 | int getModifiers() 以整数形式返回此Method对象表示的方法的Java语言修饰符。 |
11 | String getName() 以字符串形式返回此方法的名称。 |
12 | Annotation[][] getParameterAnnotations() 返回一个数组数组,这些数组以声明顺序表示此Method对象表示的方法的形式参数的注释。 |
13 | Class<?>[] getParameterTypes() 返回Class对象的数组,这些对象表示此Method对象表示的构造方法的声明顺序的形式参数类型。 |
14 | Class<?> getReturnType() 返回一个Class对象,该对象表示此Method对象表示的方法的正式返回类型。 |
15 | int hashCode() 返回此Constructor的哈希码。 |
16 | Object invoke(Object obj, Object... args) 在具有指定参数的指定对象上调用此Method对象表示的基础方法。 |
17 | boolean isBridge() 如果此方法是桥接方法,则返回true; 否则返回false。 |
18 | boolean isSynthetic() 如果此方法是合成方法,则返回true; 否则返回false。 |
19 | boolean isVarArgs() 如果声明此方法采用可变数量的参数,则返回true; 否则返回false。 |
20 | String toGenericString() 返回描述此Method的字符串,包括类型参数。 |
21 | String toString() 返回描述此Method的字符串。 |
方法继承
该类继承以下类中的方法 -
- java.lang.reflect.AccessibleObject
- java.lang.Object
java.lang.reflect - Modifier Class
介绍 (Introduction)
java.lang.reflect.Modifier类提供静态方法和常量来解码类和成员访问修饰符。 修饰符集表示为具有表示不同修饰符的不同位位置的整数。 表示修饰符的常量值取自Java虚拟机规范的4.1,4.4,4.5和4.7节中的表。
类声明
以下是java.lang.reflect.Modifier类的声明 -
public class Modifier
extends Object
字段 (Fields)
以下是java.lang.reflect.Modifier类的字段 -
static int ABSTRACT - 表示abstract修饰符的int值。
static int FINAL - 表示final修饰符的int值。
static int INTERFACE - 表示接口修饰符的int值。
static int NATIVE - 表示本机修饰符的int值。
static int PRIVATE - 表示private修饰符的int值。
static int PROTECTED - 表示受保护修饰符的int值。
static int PUBLIC - 表示public修饰符的int值。
static int STATIC - 表示static修饰符的int值。
static int STRICT - 表示strictfp修饰符的int值。
static int SYNCHRONIZED - 表示synchronized修饰符的int值。
static int TRANSIENT - 表示transient修饰符的int值。
static int VOLATILE - 表示volatile修饰符的int值。
构造函数 (Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | Modifier() 默认构造函数。 |
类方法
Sr.No. | 方法和描述 |
---|---|
1 | static int classModifiers() 返回一个int值,或者将可以应用于类的源语言修饰符组合在一起。 |
2 | static int constructorModifiers() 返回一个int值,或者将可以应用于构造函数的源语言修饰符组合在一起。 |
3 | static int fieldModifiers() 返回一个int值,或者将可以应用于字段的源语言修饰符组合在一起。 |
4 | static int interfaceModifiers() 返回一个int值,或者将可以应用于接口的源语言修饰符组合在一起。 |
5 | static boolean isAbstract(int mod) 如果整数参数包含abstract修饰符,则返回true,否则返回false。 |
6 | static boolean isFinal(int mod) 如果整数参数包含final修饰符,则返回true,否则返回false。 |
7 | static boolean isInterface(int mod) 如果整数参数包含接口修饰符,则返回true,否则返回false。 |
8 | static boolean isNative(int mod) 如果整数参数包含native修饰符,则返回true,否则返回false。 |
9 | static boolean isPrivate(int mod) 如果整数参数包含private修饰符,则返回true,否则返回false。 |
10 | static boolean isProtected(int mod) 如果整数参数包含protected修饰符,则返回true,否则返回false。 |
11 | static boolean isPublic(int mod) 如果整数参数包含public修饰符,则返回true,否则返回false。 |
12 | static boolean isStatic(int mod) 如果整数参数包含static修饰符,则返回true,否则返回false。 |
13 | static boolean isStrict(int mod) 如果整数参数包含strictfp修饰符,则返回true,否则返回false。 |
14 | static boolean isSynchronized(int mod) 如果整数参数包含synchronized修饰符,则返回true,否则返回false。 |
15 | static boolean isTransient(int mod) 如果整数参数包含transient修饰符,则返回true,否则返回false。 |
16 | static boolean isVolatile(int mod) 如果整数参数包含volatile修饰符,则返回true,否则返回false。 |
17 | static int methodModifiers() 返回一个int值,或者将可以应用于方法的源语言修饰符组合在一起。 |
18 | static String toString(int mod) 返回描述指定修饰符中的访问修饰符标志的字符串。 |
方法继承
该类继承以下类中的方法 -
- java.lang.Object
java.lang.reflect - Proxy Class
介绍 (Introduction)
java.lang.reflect.Proxy类提供了用于创建动态代理类和实例的静态方法,它也是由这些方法创建的所有动态代理类的超类。
类声明
以下是java.lang.reflect.Proxy类的声明 -
public class Proxy
extends Object
implements Serializable
字段 (Fields)
以下是java.lang.reflect.Proxy类的字段 -
protected InvocationHandler h - 此代理实例的调用处理程序。
构造函数 (Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | protected Proxy(InvocationHandler h) 从子类(通常是动态代理类)构造一个新的Proxy实例,并为其调用处理程序指定值。 |
类方法
Sr.No. | 方法和描述 |
---|---|
1 | static InvocationHandler getInvocationHandler(Object proxy) 返回指定代理实例的调用处理程序。 |
2 | static Class <?> getProxyClass(ClassLoader loader,Class <?> ... interfaces) 给定类加载器和接口数组,返回代理类的java.lang.Class对象。 |
3 | static boolean isProxyClass(Class <?> cl) 当且仅当使用getProxyClass方法或newProxyInstance方法动态生成指定的类作为代理类时,才返回true。 |
4 | static Object newProxyInstance(ClassLoader loader,Class <?> [] interfaces,InvocationHandler h) 返回指定接口的代理类的实例,该接口将方法调用分派给指定的调用处理程序。 |
方法继承
该类继承以下类中的方法 -
- java.lang.Object
java.lang.reflect - Interfaces
介绍 (Introduction)
java.lang.reflect Interfaces包含用于获取有关类和对象的反射信息的接口。
接口概要 (Interface Summary)
Sr.No. | 界面和描述 |
---|---|
1 | AnnotatedElement 表示当前在此VM中运行的程序的带注释的元素。 |
2 | GenericArrayType GenericArrayType表示一种数组类型,其组件类型是参数化类型或类型变量。 |
3 | GenericDeclaration 声明类型变量的所有实体的通用接口。 |
4 | InvocationHandler InvocationHandler是由代理实例的调用处理程序实现的接口。 |
5 | Member 成员是反映单个成员(字段或方法)或构造函数的标识信息的接口。 |
6 | ParameterizedType ParameterizedType表示参数化类型,例如Collection |
7 | Type Type是Java编程语言中所有类型的公共超接口。 |
8 | List《E》 这是一个有序集合(也称为序列)。 |
9 | TypeVariable《D extends GenericDeclaration》 TypeVariable是类型变量的通用超接口。 |
10 | WildcardType WildcardType表示通配符类型表达式,例如?,? 扩展数字,或? 超级整数。 |
java.lang.reflect - Exceptions
介绍 (Introduction)
java.lang.reflect Exceptions包含在反射操作期间可能发生的异常。
例外摘要
Sr.No. | 例外与描述 |
---|---|
1 | InvocationTargetException InvocationTargetException是一个已检查的异常,它包装被调用的方法或构造函数抛出的异常。 |
2 | MalformedParameterizedTypeException 当需要实例化它的反射方法遇到语义错误的参数化类型时抛出。 |
3 | UndeclaredThrowableException 如果其调用处理程序的invoke方法抛出一个已检查的异常(一个不能分配给RuntimeException或Error的Throwable),则由代理实例上的方法调用引发,该异常不能分配给方法的throws子句中声明的任何异常类型。在代理实例上调用并调度到调用处理程序。 |
java.lang.reflect - Error
介绍 (Introduction)
java.lang.reflect Error包含在反射操作期间可能发生的错误。
错误摘要
Sr.No. | 错误和描述 |
---|---|
1 | GenericSignatureFormatError 当需要解释类型,方法或构造函数的通用签名信息的反射方法遇到语法错误的签名属性时抛出。 |