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