public final class ReflectUtils 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 Pattern |
IS_HAS_CAN_METHOD_DESC_PATTERN |
static String |
JAVA_IDENT_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 |
SETTER_METHOD_DESC_PATTERN |
| 限定符和类型 | 方法和说明 |
|---|---|
static Object |
defaultReturn(Class<?> classType)
根据类型确定默认返回值
|
static Object |
defaultReturn(Method m)
根据方法获取对应的默认返回值
|
static Class<?> |
desc2class(String desc)
desc to class.
|
static Class<?>[] |
desc2classArray(String desc)
get class array instance.
|
static String |
desc2name(String desc)
desc to name.
|
static Constructor<?> |
findConstructor(Class<?> clazz,
Class<?> paramType)
获取一个有参数的构造函数
|
static Method |
findMethodByMethodName(Class<?> clazz,
String methodName)
根据方法名称和参数类型名查找Method,没有参数的方法
|
static Method |
findMethodByMethodSignature(Class<?> clazz,
String methodName,
String[] parameterTypes)
根据方法名称和参数类型名查找Method
|
static Class<?> |
forName(String name)
根据类名加载一个类型
"boolean" => boolean.class
"java.common.Map[][]" => java.common.Map[][].class
|
static Class<?> |
getBoxedClass(Class<?> c)
获取类型的包装类型
|
static String |
getCodeBase(Class<?> cls)
获取当前类型的位置
|
static String |
getDesc(Class<?> c)
get class desc.
|
static String |
getDesc(Class<?>[] cs)
get class array desc.
|
static String |
getDesc(Constructor<?> c)
get constructor desc.
|
static String |
getDesc(Method m)
get method desc.
|
static String |
getDescWithoutMethodName(Method m)
get method desc.
|
static Object |
getEmptyObject(Class<?> returnType)
获取一个默认类型的默认对象
|
static Class<?> |
getGenericClass(Class<?> cls)
获取实现接口上的泛型类型
|
static Class<?> |
getGenericClass(Class<?> cls,
int i)
获取实现接口上的泛型类型
|
static String |
getName(Class<?> c)
get name. java.lang.Object[][].class => "java.lang.Object[][]"
java.lang.Object ==> "java.lang.Object"
|
static String |
getName(Constructor<?> c)
get constructor name. "()", "(java.lang.String,int)"
|
static String |
getName(Method m)
get method name.
|
static String |
getPropertyNameFromBeanReadMethod(Method method) |
static String |
getPropertyNameFromBeanWriteMethod(Method method) |
static String |
getSignature(String methodName,
Class<?>[] parameterTypes)
获取一个方法的展示label
|
static boolean |
isBeanPropertyReadMethod(Method method)
方法是否是get方法
|
static boolean |
isBeanPropertyWriteMethod(Method method) |
static boolean |
isCompatible(Class<?>[] cs,
Object[] os)
is compatible.
|
static boolean |
isCompatible(Class<?> c,
Object o)
is compatible.
|
static boolean |
isInstance(Object obj,
String interfaceClazzName)
当前实例是否实现了对应的接口
|
static boolean |
isPrimitive(Class<?> cls)
是否原型
java原型
字符串java.lang.String
Boolean包装类型
Character包装
Number的子类型
java.util.Date
|
static boolean |
isPrimitives(Class<?> cls)
递归判断当前类型是否原型
|
static boolean |
isPublicInstanceField(Field field) |
static Class<?> |
name2class(String name)
name to class.
|
static String |
name2desc(String name)
name to desc. java.util.Map[][] => "[[Ljava/util/Map;"
|
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 GETTER_METHOD_DESC_PATTERN
public static final Pattern SETTER_METHOD_DESC_PATTERN
public static final Pattern IS_HAS_CAN_METHOD_DESC_PATTERN
public static Object defaultReturn(Method m)
根据方法获取对应的默认返回值
m - 方法public static Object defaultReturn(Class<?> classType)
classType - 类型public static boolean isPrimitives(Class<?> cls)
cls - 类型,如果是数组,则获取其元素类型public static boolean isPrimitive(Class<?> cls)
是否原型
cls - 类型public static boolean isCompatible(Class<?> c, Object o)
c - class.o - instance.public static boolean isCompatible(Class<?>[] cs, Object[] os)
cs - class array.os - object array.public static String getName(Class<?> c)
get name. java.lang.Object[][].class => "java.lang.Object[][]" java.lang.Object ==> "java.lang.Object"
c - class.public static Class<?> getGenericClass(Class<?> cls)
cls - 类型public static Class<?> getGenericClass(Class<?> cls, int i)
cls - 类型i - 第几个泛型参数public static String getName(Method m)
get method name. "void do(int)", "void do()", "int do(java.lang.String,boolean)"
m - method.public static String getSignature(String methodName, Class<?>[] parameterTypes)
methodName - 方法名parameterTypes - 参数public static String getName(Constructor<?> c)
get constructor name. "()", "(java.lang.String,int)"
c - constructor.public static String getDesc(Class<?> c)
get class desc. boolean[].class => "[Z" Object.class => "Ljava/lang/Object;" 获取类型的虚拟机表示形式
c - class.public static String getDesc(Class<?>[] cs)
get class array desc. [int.class, boolean[].class, Object.class] => "I[ZLjava/lang/Object;"
cs - class array.public static String getDesc(Method m)
get method desc. int do(int arg1) => "do(I)I" void do(String arg1,boolean arg2) => "do(Ljava/lang/String;Z)V"
m - method.public static String getDesc(Constructor<?> c)
get constructor desc. public A() ==> "()V" public A(String, int) ==> "(Ljava/lang/String;I)V"
c - constructor.public static String getDescWithoutMethodName(Method m)
get method desc. "(I)I", "()V", "(Ljava/lang/String;Z)V"
m - method.public static String name2desc(String name)
name to desc. java.util.Map[][] => "[[Ljava/util/Map;"
name - name.public static String desc2name(String desc)
desc to name. "[[I" => "int[][]"
desc - desc.public static Class<?> forName(String name)
根据类名加载一个类型 "boolean" => boolean.class "java.common.Map[][]" => java.common.Map[][].class
name - 类名public static Class<?> name2class(String name) throws ClassNotFoundException
name - name.ClassNotFoundExceptionpublic static Class<?> desc2class(String desc) throws ClassNotFoundException
desc to class. "[Z" => boolean[].class "[[Ljava/common/Map;" => java.common.Map[][].class
desc - desc.ClassNotFoundExceptionpublic static Class<?>[] desc2classArray(String desc) throws ClassNotFoundException
desc - desc.ClassNotFoundExceptionpublic static Method findMethodByMethodSignature(Class<?> clazz, String methodName, String[] parameterTypes) throws NoSuchMethodException, ClassNotFoundException
根据方法名称和参数类型名查找Method
clazz - 类型methodName - 方法名parameterTypes - 参数NoSuchMethodExceptionClassNotFoundExceptionpublic static Method findMethodByMethodName(Class<?> clazz, String methodName) throws NoSuchMethodException, ClassNotFoundException
根据方法名称和参数类型名查找Method,没有参数的方法
clazz - 类型methodName - 方法名NoSuchMethodExceptionClassNotFoundExceptionpublic static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType) throws NoSuchMethodException
clazz - 类型paramType - 参数类型NoSuchMethodExceptionpublic static boolean isInstance(Object obj, String interfaceClazzName)
obj - 实例interfaceClazzName - 接口public static Object getEmptyObject(Class<?> returnType)
returnType - 类型public static boolean isBeanPropertyReadMethod(Method method)
method - 方法public static String getPropertyNameFromBeanReadMethod(Method method)
public static boolean isBeanPropertyWriteMethod(Method method)
public static String getPropertyNameFromBeanWriteMethod(Method method)
public static boolean isPublicInstanceField(Field field)
Copyright © 2018. All rights reserved.