public abstract class ReflectAssist extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
ARRAY_DESC |
static String |
CLASS_DESC |
static Pattern |
DESC_PATTERN |
static String |
DESC_REGEX |
static Class<?>[] |
EMPTY_CLASS_ARRAY |
static Pattern |
GETTER_METHOD_DESC_PATTERN |
static String[] |
interfaceMethod |
static Pattern |
IS_HAS_CAN_METHOD_DESC_PATTERN |
static String |
JAVA_IDENT_REGEX |
static String |
JAVA_NAME_REGEX |
static char |
JVM_BOOLEAN
boolean(Z).
|
static char |
JVM_BYTE
byte(B).
|
static char |
JVM_CHAR
char(C).
|
static char |
JVM_DOUBLE
double(D).
|
static char |
JVM_FLOAT
float(F).
|
static char |
JVM_INT
int(I).
|
static char |
JVM_LONG
long(J).
|
static char |
JVM_SHORT
short(S).
|
static char |
JVM_VOID
void(V).
|
static Pattern |
METHOD_DESC_PATTERN |
static String |
METHOD_DESC_REGEX |
static Pattern |
SETTER_METHOD_DESC_PATTERN |
| 构造器和说明 |
|---|
ReflectAssist() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> void |
alertFieldAnnotationValue(Class<T> beanClass,
String hasAnnotationFieldName,
Class<? extends Annotation> annotationClass,
String annotationFieldName,
String newValue)
修改field级别的注解值,注意:是静态的,一修改全都修改了
|
static <T> Map<String,String> |
convertMapFromBean(T obj)
把对象转为Map值, 主要用于把对象放到redis中(未测试)
|
static Map<String,String> |
convertMapFromBeanForConvert(Object obj,
Map<String,IConvertValue> convermap,
boolean allowNull)
把Bean对象转为Map
|
static <T> Map<String,Object> |
convertMapFromSimpleBean(T obj)
适合于简单的对象,如:mybatis生成的po
|
static <T extends Serializable> |
convertMapToBean(Class clazz,
Map<String,String> valueMap)
把map对象转为可序列化的对象,支持用.来级联 主要用于把redis的Map值转为相应的对象
|
static Result |
copyProperties(Object dest,
Object orig)
复制对象
|
static List<Field> |
findFields(Class<?> calssZ,
Class<? extends Annotation> classA,
org.apache.commons.collections.Predicate predicate)
获取申明了注解的字段
|
static List<String> |
findGetField(Class clz)
找到get方法对应的域
|
static List<String> |
findGetMethod(Class clz)
找到get方法且没有参数的方法
|
static List<Method> |
findMethods(Class<?> calssZ,
Class<? extends Annotation> classA)
获取方法上的注解值
|
static Class<?> |
forName(String name) |
static Map<String,Class[]> |
getAllType(Class classz) |
static Class |
getClassRefType(PropertyDescriptor propertyDescriptor)
得到属性描述所对应的类
|
static Map<String,Class[]> |
getContextType(Class classz)
得到类所有域及对应的类
|
static Map<String,Class[]> |
getFieldType(Class classz) |
static String[] |
getNotObjectMethods(Class classz) |
static String[] |
getObjectMethods() |
static Object |
getPrivateField(Object bean,
String fieldName) |
static PropertyDescriptor[] |
getPropertyDescriptors(Class clazz)
得到类的属性描述
|
static Class |
getSuperClassGenricType(Class clazz)
得到第0个泛型参数的类型
|
static Class |
getSuperClassGenricType(Class clazz,
Class parentClass,
int index)
通过反射,获得定义Class时声明的父类的范型参数的类型.
|
static Class[] |
getSuperClassGenricTypes(Class clazz,
Class parentClass) |
static Object |
invokeMothed(Object invokeObj,
String methodName,
Object... param)
调用对象中的方法
|
static Object |
invokeMothedRetry(Object invokeObj,
String methodName,
int retryNum,
Object... param)
不断重试调用某方法
|
static Object |
invokeStaticMothed(String className,
String methodName,
Class[] paramclass,
Object... param) |
static Object |
invokeStaticMothed(String className,
String methodName,
Object... param)
用简单参数调用静态方法
|
static boolean |
isInterface(Class classz,
String szInterface)
判断类是否实现某个接口
|
static boolean |
isPrimitieClass(Class clz)
判断类是否基本数据类型
|
static void |
mergeObj(Object to,
Object from,
boolean copyNull,
boolean copyBlank,
String... removes)
合并对象
|
static void |
mergeObj(Object to,
Object from,
boolean copyNull,
String... removes)
合并对象,空字符串还是会合并。
|
static void |
mergeObj(Object to,
Object from,
String... removes)
合并对象,不合并空对象和空字符串
|
static Class<?> |
name2class(String name)
name to class.
|
static <T> T |
newInst(Class<T> clazz)
调用无参的构造方法
|
static <T> T |
newInst(String className) |
static boolean |
returnsMany(Class<?> returnType)
判断返回值类型是否是集合或者数组类型
|
static void |
setClassGenricTypes(List<Class> retClassList,
Type genType)
设置类型的泛型
|
public static String[] interfaceMethod
public static final char JVM_VOID
public static final char JVM_BOOLEAN
public static final char JVM_BYTE
public static final char JVM_CHAR
public static final char JVM_DOUBLE
public static final char JVM_FLOAT
public static final char JVM_INT
public static final char JVM_LONG
public static final char JVM_SHORT
public static final Class<?>[] EMPTY_CLASS_ARRAY
public static final Pattern DESC_PATTERN
public static final Pattern METHOD_DESC_PATTERN
public static final Pattern GETTER_METHOD_DESC_PATTERN
public static final Pattern SETTER_METHOD_DESC_PATTERN
public static final Pattern IS_HAS_CAN_METHOD_DESC_PATTERN
public static String[] getObjectMethods()
public static Object invokeStaticMothed(String className, String methodName, Class[] paramclass, Object... param) throws Exception
Exceptionpublic static Object invokeStaticMothed(String className, String methodName, Object... param) throws Exception
className - 要调用的静态方法所在的类名methodName - 静态方法名param - 调用的参数Exception - 调用时错误public static Object invokeMothedRetry(Object invokeObj, String methodName, int retryNum, Object... param)
invokeObj - methodName - retryNum - param - public static Object invokeMothed(Object invokeObj, String methodName, Object... param)
invokeObj - 方法所在的对象methodName - 方法名param - 调用的参数public static boolean isPrimitieClass(Class clz)
clz - 要判断的类public static List<String> findGetMethod(Class clz)
clz - get方法所在的类public static List<String> findGetField(Class clz)
clz - 域所在的类public static Map<String,String> convertMapFromBeanForConvert(Object obj, Map<String,IConvertValue> convermap, boolean allowNull)
obj - 要转换的Bean对象convermap - 对象值的转换器,key:对象的域名称,value:转换器,它会把对应域的值按转换器规则转换值,把转换后的值放入结果MapallowNull - 是否允许为空,true:允许,false:不允许,如果允许为空,则对象域的值为null也会加到结果map中public static <T> Map<String,String> convertMapFromBean(T obj)
T - 转为map的bean类型obj - 要转换的对象public static <T> Map<String,Object> convertMapFromSimpleBean(T obj)
T - 转为map的bean类型public static <T extends Serializable> T convertMapToBean(Class clazz, Map<String,String> valueMap)
T - 要转的bean类型clazz - 要返回对象的类valueMap - 要返回对象的值,key:如果是 a.b 那么它对应的value则是子对象的值public static void setClassGenricTypes(List<Class> retClassList, Type genType)
retClassList - genType - public static Class[] getSuperClassGenricTypes(Class clazz, Class parentClass)
public static boolean isInterface(Class classz, String szInterface)
classz - 要判断的类szInterface - 要判断的接口public static PropertyDescriptor[] getPropertyDescriptors(Class clazz)
clazz - 要操作的类public static Class getClassRefType(PropertyDescriptor propertyDescriptor)
propertyDescriptor - 指定的属性描述public static Map<String,Class[]> getContextType(Class classz)
classz - 要操作的类public static Result copyProperties(Object dest, Object orig)
dest - 目标对象orig - 源对象public static void mergeObj(Object to, Object from, String... removes)
to - 目标对象from - 要被合并的对象removes - 希望排除的字段public static void mergeObj(Object to, Object from, boolean copyNull, String... removes)
to - 目标对象from - 要被合并的对象copyNull - 是否复制空对象 true:空值也合并 false:空值不合并removes - 希望排除的字段public static void mergeObj(Object to, Object from, boolean copyNull, boolean copyBlank, String... removes)
to - 目标对象from - 要被合并的对象copyNull - 是否复制空对象 true:空值也合并 false:空值不合并copyBlank - 是否复制空字符吕 true:空字符串也合并 false:空字符串不合并removes - 希望排除的字段public static Class getSuperClassGenricType(Class clazz, Class parentClass, int index)
clazz - 要得到此class的泛型classindex - 泛型的第几个参数,从0开始public static Class getSuperClassGenricType(Class clazz)
clazz - 要得到此class的泛型classpublic static <T> T newInst(Class<T> clazz)
clazz - public static <T> T newInst(String className)
public static List<Method> findMethods(Class<?> calssZ, Class<? extends Annotation> classA)
calssZ - classA - public static List<Field> findFields(Class<?> calssZ, Class<? extends Annotation> classA, org.apache.commons.collections.Predicate predicate)
calssZ - classA - predicate - 过滤条件public static <T> void alertFieldAnnotationValue(Class<T> beanClass, String hasAnnotationFieldName, Class<? extends Annotation> annotationClass, String annotationFieldName, String newValue) throws Throwable
T - beanClass - 拥有field的classhasAnnotationFieldName - field的名称annotationClass - 注解的classannotationFieldName - 注解的名字newValue - 新的值Throwablepublic static Class<?> name2class(String name) throws ClassNotFoundException
name - name.ClassNotFoundExceptionpublic static boolean returnsMany(Class<?> returnType)
returnType - 类型Copyright © 2023. All rights reserved.