程序包 dev.utils.common
类 Reflect2Utils
java.lang.Object
dev.utils.common.Reflect2Utils
detail: 反射相关工具类
- 作者:
- Ttt
有两个方法: getMethod, getDeclaredMethod getDeclaredMethod() 获取的是类自身声明的所有方法, 包含 public、protected 和 private 方法 getMethod() 获取的是类的所有共有方法, 这就包括自身的所有 public 方法, 和从基类继承的、从接口实现的所有 public 方法 getMethod 只能调用 public 声明的方法, 而 getDeclaredMethod 基本可以调用任何类型声明的方法 反射多用 getDeclaredMethod 尽量少用 getMethod
-
方法概要
修饰符和类型方法说明static Class<?>[]getArgsClass(Object... args) 获取参数类型static FieldgetDeclaredFieldParent(Object object, String fieldName) 获取父类中的变量对象 ( 循环向上转型, 获取对象的 DeclaredField )static FieldgetDeclaredFieldParent(Object object, String fieldName, int fieldNumber) 获取父类中的变量对象 ( 循环向上转型, 获取对象的 DeclaredField )static <T> TgetProperty(Object object, Field field) 获取某个对象的变量static <T> TgetProperty(Object object, String fieldName) 获取某个对象的变量 ( 可获取静态变量 )static <T> TgetPropertyByParent(Object object, String fieldName) 获取父类中的变量对象static <T> TgetPropertyByParent(Object object, String fieldName, int fieldNumber) 获取父类中的变量对象static <T> TgetStaticProperty(Class<?> clazz, String fieldName) 获取某个类的静态变量 ( 只能获取静态变量 )static <T> TgetStaticProperty(Object object, String fieldName) 获取某个类的静态变量 ( 只能获取静态变量 )static <T> TgetStaticProperty(String className, String fieldName) 获取某个类的静态变量 ( 只能获取静态变量 )static <T> TinvokeMethod(Object object, String methodName) 执行某个对象方法 ( 可执行静态方法 )static <T> TinvokeMethod(Object object, String methodName, Object[] args) 执行某个对象方法 ( 可执行静态方法 )static <T> TinvokeMethod(Object object, String methodName, Object[] args, Class<?>[] argsClass) 执行某个对象方法 ( 可执行静态方法 )static <T> TinvokeStaticMethod(Class<?> clazz, String methodName) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(Class<?> clazz, String methodName, Object[] args) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(Class<?> clazz, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(Object object, String methodName) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(Object object, String methodName, Object[] args) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(Object object, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(String className, String methodName) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(String className, String methodName, Object[] args) 执行某个类的静态方法 ( 只能执行静态方法 )static <T> TinvokeStaticMethod(String className, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )static booleanisInstance(Object object, Class<?> clazz) 是不是某个类的实例static <T> TnewInstance(Class<?> clazz) 新建实例 ( 构造函数创建 )static <T> TnewInstance(Class<?> clazz, Object[] args) 新建实例 ( 构造函数创建 )static <T> TnewInstance(Class<?> clazz, Object[] args, Class<?>[] argsClass) 新建实例 ( 构造函数创建 )static <T> TnewInstance(Object object) 新建实例 ( 构造函数创建 )static <T> TnewInstance(Object object, Object[] args) 新建实例 ( 构造函数创建 )static <T> TnewInstance(Object object, Object[] args, Class<?>[] argsClass) 新建实例 ( 构造函数创建 )static <T> TnewInstance(String className) 新建实例 ( 构造函数创建 )static <T> TnewInstance(String className, Object[] args) 新建实例 ( 构造函数创建 )static <T> TnewInstance(String className, Object[] args, Class<?>[] argsClass) 新建实例 ( 构造函数创建 )static booleansetProperty(Object object, String fieldName, Object value) 设置某个对象变量值 ( 可设置静态变量 )
-
方法详细资料
-
setProperty
设置某个对象变量值 ( 可设置静态变量 )- 参数:
object- 对象fieldName- 属性名value- 字段值- 返回:
truesuccess,falsefail
-
getProperty
获取某个对象的变量 ( 可获取静态变量 )- 类型参数:
T- 泛型- 参数:
object- 对象fieldName- 属性名- 返回:
- 该变量对象
-
getStaticProperty
获取某个类的静态变量 ( 只能获取静态变量 )- 类型参数:
T- 泛型- 参数:
object- 对象fieldName- 属性名- 返回:
- 该变量对象
-
getStaticProperty
获取某个类的静态变量 ( 只能获取静态变量 )- 类型参数:
T- 泛型- 参数:
clazz- 类fieldName- 属性名- 返回:
- 该变量对象
-
getStaticProperty
获取某个类的静态变量 ( 只能获取静态变量 )- 类型参数:
T- 泛型- 参数:
className- 类名fieldName- 属性名- 返回:
- 该变量对象
-
invokeMethod
执行某个对象方法 ( 可执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名- 返回:
- 执行方法返回的结果
-
invokeMethod
执行某个对象方法 ( 可执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名args- 参数- 返回:
- 执行方法返回的结果
-
invokeMethod
public static <T> T invokeMethod(Object object, String methodName, Object[] args, Class<?>[] argsClass) 执行某个对象方法 ( 可执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名args- 参数argsClass- 参数类型- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名args- 参数数组- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
public static <T> T invokeStaticMethod(Object object, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
object- 对象methodName- 方法名args- 参数数组argsClass- 参数类型- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
clazz- 类methodName- 方法名- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
clazz- 类methodName- 方法名args- 参数数组- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
public static <T> T invokeStaticMethod(Class<?> clazz, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
clazz- 类methodName- 方法名args- 参数数组argsClass- 参数类型- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
className- 类名methodName- 方法名- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
className- 类名methodName- 方法名args- 参数数组- 返回:
- 执行方法返回的结果
-
invokeStaticMethod
public static <T> T invokeStaticMethod(String className, String methodName, Object[] args, Class<?>[] argsClass) 执行某个类的静态方法 ( 只能执行静态方法 )- 类型参数:
T- 泛型- 参数:
className- 类名methodName- 方法名args- 参数数组argsClass- 参数类型- 返回:
- 执行方法返回的结果
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
object- 对象- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
object- 对象args- 参数- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
object- 对象args- 参数argsClass- 参数类型- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
clazz- 类- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
clazz- 类args- 参数- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
clazz- 类args- 参数argsClass- 参数类型- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
className- 类名- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
className- 类名args- 参数- 返回:
- 新建的实例
-
newInstance
新建实例 ( 构造函数创建 )- 类型参数:
T- 泛型- 参数:
className- 类名args- 参数argsClass- 参数类型- 返回:
- 新建的实例
-
isInstance
是不是某个类的实例- 参数:
object- 实例clazz- 待判断类- 返回:
- 如果 obj 是此类的实例, 则返回 true
-
getArgsClass
获取参数类型- 参数:
args- 参数- 返回:
- 参数类型数组
-
getProperty
获取某个对象的变量例: 获取父类中的变量 Object object = 对象; getObject(getDeclaredFieldParent(object, "父类中变量名"), object);- 类型参数:
T- 泛型- 参数:
object- 对象field-Field- 返回:
- 该变量对象
-
getPropertyByParent
获取父类中的变量对象- 类型参数:
T- 泛型- 参数:
object- 子类对象fieldName- 父类中的属性名- 返回:
- 父类中的变量对象
-
getPropertyByParent
获取父类中的变量对象- 类型参数:
T- 泛型- 参数:
object- 子类对象fieldName- 父类中的属性名fieldNumber- 字段出现次数, 如果父类还有父类, 并且有相同变量名, 设置负数 一直会跟到最后的变量- 返回:
- 父类中的变量对象
-
getDeclaredFieldParent
获取父类中的变量对象 ( 循环向上转型, 获取对象的 DeclaredField )- 参数:
object- 对象fieldName- 属性名- 返回:
Field
-
getDeclaredFieldParent
获取父类中的变量对象 ( 循环向上转型, 获取对象的 DeclaredField )- 参数:
object- 子类对象fieldName- 父类中的属性名fieldNumber- 字段出现次数, 如果父类还有父类, 并且有相同变量名, 设置负数 一直会跟到最后的变量- 返回:
Field父类中的属性对象
-