public class ReflectUtil extends Object
| 构造器和说明 |
|---|
ReflectUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static Class<?>[] |
args2class(Object[] args)
把参数转换为类对象列表
|
static Object |
executeMethod_Throwable(Object instance,
Method method,
Object... args)
调用方法
|
static Object |
executeMethod(Object instance,
Method method,
Object... args)
调用方法,该方法不会抛出异常
|
static Object |
executeMethod(Object instnace,
String method,
Class<?> argType,
Object argValue)
调用方法。
|
static Object |
executeMethod(Object instnace,
String method,
Object... args)
调用方法
|
static Object |
executeStaticMethod(Method method,
Object... args)
执行静态方法
|
static String |
firstLetterUpper(String str)
将第一个字母大写
|
static Class<?> |
getClassByInterface(Type type)
已知接口类型,获取它的 class
|
static Class<?> |
getClassByName(String clzName)
根据类名字符串获取类对象
|
static <T> Class<T> |
getClassByName(String clzName,
Class<T> clz)
根据类名字符串获取类对象,可强类型转换类型
|
static Map<String,Integer> |
getConstantsInt(Class<?> clz) |
static <T> Constructor<T> |
getConstructor(Class<T> clz,
Class<?>... argClz)
获取类的构造器,可以支持重载的构造器(不同参数的构造器)
|
static Class<?>[] |
getDeclaredInterface(Class<?> clz)
获取某个类的所有接口
|
static Method |
getDeclaredMethodByInterface(Class<?> clz,
String method,
Object arg)
循环 object 向上转型(接口)
|
static String |
getFieldName(String method,
String action)
根据方法名称来截取属性名称,例如把 getter 的 getXxx() 转换为 xxx 的字段名
|
static Method |
getMethod(Object obj,
String method,
Class<?>... args)
根据类、方法的字符串和参数列表获取方法对象,支持重载的方法
|
static Method |
getMethod(Object obj,
String method,
Object... args)
根据方法名称和参数列表查找方法。
|
static Method |
getMethodByUpCastingSearch(Class<?> clz,
String method,
Object arg)
根据方法名称和参数列表查找方法。
|
static Method |
getSuperClassDeclaredMethod(Class<?> clz,
String method)
查找对象父类身上指定的方法(注意该方法不需要校验参数类型是否匹配,故有可能不是目标方法,而造成异常,请谨慎使用)
|
static Method |
getSuperClassDeclaredMethod(Class<?> clz,
String method,
Class<?> argClz)
查找对象父类身上指定的方法
|
static Throwable |
getUnderLayerErr(Throwable e)
获取实际抛出的那个异常对象。
|
static String |
getUnderLayerErrMsg(Throwable e)
获取实际抛出的那个异常对象,并去掉前面的包名。
|
static boolean |
hasArgsCon(Class<?> clz)
传入的类是否有带参数的构造器
|
static boolean |
isStaticMethod(Method method)
是否静态方法
|
static <T> T |
newInstance(Class<T> clz,
Object... args)
根据类创建实例,可传入构造器参数。
|
static <T> T |
newInstance(Constructor<T> constructor,
Object... args)
根据构造器创建实例
|
static Object |
newInstance(String clzName,
Object... args)
根据类全称创建实例
|
static void |
setProperty(Object bean,
String name,
Object value)
调用 bean 对象的 setter 方法
|
public static <T> T newInstance(Class<T> clz, Object... args)
clz - 类对象args - 获取指定参数类型的构造函数,这里传入我们想调用的构造函数所需的参数。可以不传。public static <T> T newInstance(Constructor<T> constructor, Object... args)
constructor - 类构造器args - 获取指定参数类型的构造函数,这里传入我们想调用的构造函数所需的参数。可以不传。public static boolean hasArgsCon(Class<?> clz)
clz - 类对象public static Object newInstance(String clzName, Object... args)
clzName - 类全称args - 根据构造函数,创建指定类型的对象,传入的参数个数需要与上面传入的参数类型个数一致public static <T> Constructor<T> getConstructor(Class<T> clz, Class<?>... argClz)
clz - 类对象argClz - 指定构造函数的参数类型,这里传入我们想调用的构造函数所需的参数类型public static Class<?> getClassByName(String clzName)
clzName - 类全称。如果是内部类请注意用法public static <T> Class<T> getClassByName(String clzName, Class<T> clz)
clzName - 类全称clz - 要转换的目标类型public static Class<?>[] args2class(Object[] args)
args - 可变参数列表public static Class<?> getClassByInterface(Type type)
type - 接口类型public static Class<?>[] getDeclaredInterface(Class<?> clz)
clz - 目标类public static Method getMethod(Object obj, String method, Class<?>... args)
obj - 可以是实例对象,也可以是类对象method - 方法名称args - 明确的参数类型列表public static Method getMethod(Object obj, String method, Object... args)
obj - 实例对象method - 方法名称args - 对应重载方法的参数列表public static Method getMethodByUpCastingSearch(Class<?> clz, String method, Object arg)
clz - 实例对象的类对象method - 方法名称arg - 参数对象,可能是子类或接口,所以要在这里找到对应的方法,当前只支持单个参数;且不能传 Class,必须为对象public static Method getDeclaredMethodByInterface(Class<?> clz, String method, Object arg)
clz - 主类method - 方法名称arg - 参数对象,可能是子类或接口,所以要在这里找到对应的方法,当前只支持单个参数public static Method getSuperClassDeclaredMethod(Class<?> clz, String method, Class<?> argClz)
clz - 主类method - 方法名称argClz - 参数类引用public static Method getSuperClassDeclaredMethod(Class<?> clz, String method)
clz - 主类method - 方法名称public static Object executeMethod_Throwable(Object instance, Method method, Object... args) throws Throwable
instance - 对象实例,beanmethod - 方法对象args - 参数列表Throwablepublic static Throwable getUnderLayerErr(Throwable e)
e - 异常对象public static String getUnderLayerErrMsg(Throwable e)
e - 异常对象public static Object executeMethod(Object instance, Method method, Object... args)
instance - 对象实例,beanmethod - 方法对象args - 参数列表public static Object executeMethod(Object instnace, String method, Object... args)
instnace - 对象实例,beanmethod - 方法对象名称args - 参数列表public static Object executeMethod(Object instnace, String method, Class<?> argType, Object argValue)
instnace - 对象实例method - 方法名称argType - 参数类型argValue - 参数值public static Object executeStaticMethod(Method method, Object... args)
method - 方法对象args - 方法参数列表public static boolean isStaticMethod(Method method)
method - 方法对象public static String getFieldName(String method, String action)
method - 方法名称action - set|getpublic static void setProperty(Object bean, String name, Object value)
bean - Bean 对象name - 属性名称,前缀不要带 setvalue - 要设置的属性值Copyright © 2013–2021 AJAXJS. All rights reserved.