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 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 |
| 限定符和类型 | 方法和说明 |
|---|---|
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) |
static Method |
findMethodByMethodSignature(Class<?> clazz,
String methodName,
String[] parameterTypes)
根据方法签名从类中找出方法。
|
static Class<?> |
forName(String name) |
static Map<String,Field> |
getBeanPropertyFields(Class cl) |
static Map<String,Method> |
getBeanPropertyReadMethods(Class cl) |
static Class<?> |
getBoxedClass(Class<?> c) |
static String |
getCodeBase(Class<?> cls) |
static String |
getDesc(Class<?> c)
get class desc. boolean[].class => "[Z" Object.class =>
"Ljava/lang/Object;"
|
static String |
getDesc(Class<?>[] cs)
get class array desc.
|
static String |
getDesc(Constructor<?> c)
get constructor desc. "()V", "(Ljava/lang/String;I)V"
|
static String |
getDesc(javassist.CtClass c)
get class desc.
|
static String |
getDesc(javassist.CtConstructor c)
get constructor desc. "()V", "(Ljava/lang/String;I)V"
|
static String |
getDesc(javassist.CtMethod m)
get method desc.
|
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"
|
static String |
getDescWithoutMethodName(javassist.CtMethod 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[][]"
|
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) |
static boolean |
isBeanPropertyReadMethod(Method method) |
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) |
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 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 boolean isPrimitives(Class<?> cls)
public static boolean isPrimitive(Class<?> 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)
c - class.public static String getName(Method m)
m - method.public static String getName(Constructor<?> c)
c - constructor.public static String getDesc(Class<?> c)
c - class.javassist.NotFoundExceptionpublic static String getDesc(Class<?>[] cs)
cs - class array.javassist.NotFoundExceptionpublic static String getDesc(Method m)
m - method.public static String getDesc(Constructor<?> c)
c - constructor.public static String getDescWithoutMethodName(Method m)
m - method.public static String getDesc(javassist.CtClass c) throws javassist.NotFoundException
c - class.javassist.NotFoundExceptionpublic static String getDesc(javassist.CtMethod m) throws javassist.NotFoundException
m - method.javassist.NotFoundExceptionpublic static String getDesc(javassist.CtConstructor c) throws javassist.NotFoundException
c - constructor.javassist.NotFoundExceptionpublic static String getDescWithoutMethodName(javassist.CtMethod m) throws javassist.NotFoundException
m - method.javassist.NotFoundExceptionpublic static String name2desc(String name)
name - name.public static String desc2name(String desc)
desc - desc.public static Class<?> name2class(String name) throws ClassNotFoundException
name - name.ClassNotFoundExceptionpublic static Class<?> desc2class(String desc) throws ClassNotFoundException
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
clazz - 查找的类。methodName - 方法签名,形如method1(int, String)。也允许只给方法名不参数只有方法名,形如method2。NoSuchMethodExceptionClassNotFoundExceptionIllegalStateException - 给定的方法签名找到多个方法(方法签名中没有指定参数,又有有重载的方法的情况)public static Method findMethodByMethodName(Class<?> clazz, String methodName) throws NoSuchMethodException, ClassNotFoundException
public static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType) throws NoSuchMethodException
public static boolean isInstance(Object obj, String interfaceClazzName)
不会触发到指定接口的Class,所以如果ClassLoader中没有指定接口类时,也不会出错。
obj - 要检查的对象interfaceClazzName - 指定的接口名true,如果对象实现了指定接口;否则返回false。public static boolean isBeanPropertyReadMethod(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.