public class ReflectUtil
extends java.lang.Object
| 构造器和说明 |
|---|
ReflectUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> java.lang.reflect.Constructor<T> |
findConstructorsByParameter(java.lang.Class<T> beanClass,
java.lang.Object... parameters)
find the right constructor by the parameters
|
static <T extends java.lang.annotation.Annotation> |
getAnnotationOfClass(java.lang.Class<?> clazz,
java.lang.Class<T> aClazz)
获取类的指定注解
|
static <T> java.lang.reflect.Constructor<T> |
getConstructor(java.lang.Class<T> clazz,
java.lang.Class<?>... parameterTypes)
根据构造函数类参数类型,获取相应的构造函数
|
static <T> java.lang.reflect.Constructor<T>[] |
getConstructors(java.lang.Class<T> beanClass)
获取类的构造函数
|
static java.lang.reflect.Field |
getField(java.lang.Class<?> beanClass,
java.lang.String name)
根据字段名获取字段
|
static java.lang.reflect.Field[] |
getFields(java.lang.Class<?> cla)
获取类以及父类的字段
|
static java.lang.reflect.Field[] |
getFields(java.lang.Class<?> cla,
boolean withSuperClassFields)
返回类的字段
|
static <T extends java.lang.annotation.Annotation> |
getFieldsByAnnotation(java.lang.Class<?> cla,
java.lang.Class<T> aClazz)
根据注解类获取字段
|
static java.lang.String |
getFieldStringValue(java.lang.Object obj,
java.lang.reflect.Field field)
获取字段的字符串值
|
static java.lang.Object |
getFieldValue(java.lang.Object obj,
java.lang.reflect.Field field)
获取字段值
|
static java.lang.Object |
getFieldValue(java.lang.Object obj,
java.lang.String fieldName)
获取字段值
|
static java.lang.reflect.Method |
getMethodByName(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... paramTypes)
根据方法名称获取方法
|
static java.lang.reflect.Method |
getMethodByName(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法
|
static java.lang.reflect.Method |
getMethodByNameSmartly(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
根据方法名和参数智能推断获取method
|
static java.lang.reflect.Method[] |
getMethods(java.lang.Class<?> cla)
获取类以及父类的方法
|
static java.lang.reflect.Method[] |
getMethods(java.lang.Class<?> cla,
boolean withSuperClassMethods)
返回类的方法
|
static <T> T |
invoke(java.lang.Object obj,
java.lang.reflect.Method method,
java.lang.Object... args)
执行方法
|
static <T> T |
invoke(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
执行对象中指定方法
|
static <T> T |
invokeStatic(java.lang.reflect.Method method,
java.lang.Object... args)
执行静态方法
|
static void |
makeAccessible(java.lang.reflect.Constructor<?> constructor)
确保构造可用
|
static void |
makeAccessible(java.lang.reflect.Field field)
确保字段可获取
|
static void |
makeAccessible(java.lang.reflect.Method method)
确保方法可调用
|
static <T> T |
newInstance(java.lang.Class<T> clazz,
java.lang.Object... params)
实例化对象
|
static <T> T |
newInstance(java.lang.reflect.Constructor<T> ctor,
java.lang.Object... params)
通过构造来实例对象
|
static <T> T |
newInstance(java.lang.String clazz)
实例化对象
|
static <T> T |
newProxy(java.lang.Class<T> interfaceType,
java.lang.reflect.InvocationHandler handler)
创建动态代理类
|
static void |
setFieldValue(java.lang.Object obj,
java.lang.reflect.Field field,
java.lang.Object value)
设置对象的字段值
|
static void |
setFieldValue(java.lang.Object obj,
java.lang.String fieldName,
java.lang.Object value)
设置对象的字段值
|
public static <T extends java.lang.annotation.Annotation> T getAnnotationOfClass(java.lang.Class<?> clazz,
java.lang.Class<T> aClazz)
T - 注解类的泛型clazz - 查询类aClazz - 指定注解类public static <T> java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<T> clazz,
java.lang.Class<?>... parameterTypes)
T - 泛型clazz - 类型parameterTypes - 参数类型public static <T> java.lang.reflect.Constructor<T>[] getConstructors(java.lang.Class<T> beanClass)
throws java.lang.SecurityException
beanClass - the bean's classjava.lang.SecurityExceptionpublic static <T> java.lang.reflect.Constructor<T> findConstructorsByParameter(java.lang.Class<T> beanClass,
java.lang.Object... parameters)
beanClass - the class of beanparameters - parameterspublic static java.lang.reflect.Field[] getFields(java.lang.Class<?> cla)
cla - 类public static java.lang.reflect.Field[] getFields(java.lang.Class<?> cla,
boolean withSuperClassFields)
cla - 类withSuperClassFields - 是否包含父级类的字段public static <T extends java.lang.annotation.Annotation> java.util.List<java.lang.reflect.Field> getFieldsByAnnotation(java.lang.Class<?> cla,
java.lang.Class<T> aClazz)
T - 注解类型cla - 类aClazz - 注解类public static java.lang.reflect.Field getField(java.lang.Class<?> beanClass,
java.lang.String name)
throws java.lang.SecurityException
beanClass - 类name - 字段名称java.lang.SecurityException - 异常public static java.lang.Object getFieldValue(java.lang.Object obj,
java.lang.String fieldName)
throws UtilException
obj - 对象fieldName - 字段名UtilException - 包装IllegalAccessException异常public static java.lang.Object getFieldValue(java.lang.Object obj,
java.lang.reflect.Field field)
obj - 对象field - 字段UtilException - 包装IllegalAccessException异常public static java.lang.String getFieldStringValue(java.lang.Object obj,
java.lang.reflect.Field field)
obj - 对象field - 变量public static void setFieldValue(java.lang.Object obj,
java.lang.String fieldName,
java.lang.Object value)
throws UtilException
obj - 对象fieldName - 字段名称value - 值UtilException - 工具异常public static void setFieldValue(java.lang.Object obj,
java.lang.reflect.Field field,
java.lang.Object value)
throws UtilException
obj - 对象field - 字段value - 值UtilException - 包装IllegalAccessException异常public static java.lang.reflect.Method getMethodByName(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... paramTypes)
clazz - 类methodName - 方法名称paramTypes - 方法参数类型public static java.lang.reflect.Method getMethodByName(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
obj - 被查找的对象,如果为null返回nullmethodName - 方法名,如果为空字符串返回nullargs - 参数public static java.lang.reflect.Method getMethodByNameSmartly(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
obj - 实体对象methodName - 方法名称args - 参数public static java.lang.reflect.Method[] getMethods(java.lang.Class<?> cla)
cla - 类public static java.lang.reflect.Method[] getMethods(java.lang.Class<?> cla,
boolean withSuperClassMethods)
cla - 类withSuperClassMethods - 是否包含父类的方法public static <T> T invokeStatic(java.lang.reflect.Method method,
java.lang.Object... args)
throws UtilException
T - 对象类型method - 方法(对象方法或static方法都可)args - 参数对象UtilException - 多种异常包装public static <T> T invoke(java.lang.Object obj,
java.lang.reflect.Method method,
java.lang.Object... args)
throws UtilException
T - 返回对象类型obj - 对象,如果执行静态方法,此值为nullmethod - 方法(对象方法或static方法都可)args - 参数对象UtilException - 一些列异常的包装public static <T> T invoke(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
throws UtilException
T - 返回对象类型obj - 方法所在对象methodName - 方法名args - 参数列表UtilException - IllegalAccessException包装public static void makeAccessible(java.lang.reflect.Field field)
field - 字段public static void makeAccessible(java.lang.reflect.Method method)
method - 方法public static void makeAccessible(java.lang.reflect.Constructor<?> constructor)
public static <T> T newInstance(java.lang.String clazz)
throws UtilException
T - 对象类型clazz - 类名UtilException - 包装各类异常public static <T> T newInstance(java.lang.Class<T> clazz,
java.lang.Object... params)
T - 对象类型clazz - 类params - 构造函数参数public static <T> T newInstance(java.lang.reflect.Constructor<T> ctor,
java.lang.Object... params)
T - 泛型ctor - 构造params - 参数public static <T> T newProxy(java.lang.Class<T> interfaceType,
java.lang.reflect.InvocationHandler handler)
T - 接口类型interfaceType - 接口类handler - 代理handler