类 ReflectUtils
- java.lang.Object
-
- org.apache.dubbo.common.utils.ReflectUtils
-
public final class ReflectUtils extends Object
ReflectUtils
-
-
字段概要
字段 修饰符和类型 字段 说明 static StringARRAY_DESCstatic StringCLASS_DESCstatic PatternDESC_PATTERNstatic StringDESC_REGEXstatic Class<?>[]EMPTY_CLASS_ARRAYstatic PatternGETTER_METHOD_DESC_PATTERNstatic PatternIS_HAS_CAN_METHOD_DESC_PATTERNstatic StringJAVA_IDENT_REGEXstatic StringJAVA_NAME_REGEXstatic charJVM_BOOLEANboolean(Z).static charJVM_BYTEbyte(B).static charJVM_CHARchar(C).static charJVM_DOUBLEdouble(D).static charJVM_FLOATfloat(F).static charJVM_INTint(I).static charJVM_LONGlong(J).static charJVM_SHORTshort(S).static charJVM_VOIDvoid(V).static PatternMETHOD_DESC_PATTERNstatic StringMETHOD_DESC_REGEXstatic PatternSETTER_METHOD_DESC_PATTERN
-
方法概要
所有方法 静态方法 具体方法 已过时的方法 修饰符和类型 方法 说明 static booleancheckZeroArgConstructor(Class clazz)static ObjectdefaultReturn(Class<?> classType)static ObjectdefaultReturn(Method m)static Class<?>desc2class(String desc)desc to class.static Class<?>[]desc2classArray(String desc)get class array instance.static Stringdesc2name(String desc)desc to name.static Constructor<?>findConstructor(Class<?> clazz, Class<?> paramType)static <T> Set<Class<T>>findHierarchicalTypes(Class<?> sourceClass, Class<T> matchType)static MethodfindMethodByMethodName(Class<?> clazz, String methodName)已过时。static MethodfindMethodByMethodSignature(Class<?> clazz, String methodName, String[] parameterTypes)已过时。static Set<ParameterizedType>findParameterizedTypes(Class<?> sourceClass)Find theSetofParameterizedTypestatic Class<?>forName(ClassLoader cl, String name)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 StringgetCodeBase(Class<?> cls)static StringgetDesc(Class<?> c)get class desc.static StringgetDesc(Class<?>[] cs)get class array desc.static StringgetDesc(Constructor<?> c)get constructor desc. "()V", "(Ljava/lang/String;I)V"static StringgetDesc(Method m)get method desc.static StringgetDesc(javassist.CtClass c)get class desc.static StringgetDesc(javassist.CtConstructor c)get constructor desc. "()V", "(Ljava/lang/String;I)V"static StringgetDesc(javassist.CtMethod m)get method desc.static String[]getDescArray(Method m)static StringgetDescWithoutMethodName(Method m)get method desc.static StringgetDescWithoutMethodName(javassist.CtMethod m)get method desc.static ObjectgetEmptyObject(Class<?> returnType)static Class<?>getGenericClass(Class<?> cls)static Class<?>getGenericClass(Class<?> cls, int i)static StringgetName(Class<?> c)get name.static StringgetName(Constructor<?> c)get constructor name. "()", "(java.lang.String,int)"static StringgetName(Method m)get method name.static <T> TgetProperty(Object bean, String methodName)Get the value from the specified bean and its getter method.static StringgetPropertyNameFromBeanReadMethod(Method method)static StringgetPropertyNameFromBeanWriteMethod(Method method)static Type[]getReturnTypes(Method method)static StringgetSignature(String methodName, Class<?>[] parameterTypes)static booleanisBeanPropertyReadMethod(Method method)static booleanisBeanPropertyWriteMethod(Method method)static booleanisCompatible(Class<?>[] cs, Object[] os)is compatible.static booleanisCompatible(Class<?> c, Object o)is compatible.static booleanisInstance(Object obj, String interfaceClazzName)Check if one object is the implementation for a given interface.static booleanisJdk(Class clazz)static booleanisPrimitive(Class<?> cls)static booleanisPrimitives(Class<?> cls)static booleanisPublicInstanceField(Field field)static voidmakeAccessible(Constructor<?> ctor)Copy from org.springframework.util.ReflectionUtils.static voidmakeAccessible(Field field)Copy from org.springframework.util.ReflectionUtils.static voidmakeAccessible(Method method)Copy from org.springframework.util.ReflectionUtils.static Class<?>name2class(String name)name to class.static Stringname2desc(String name)name to desc.static Class[]resolveTypes(Object... values)Resolve the types of the specified values
-
-
-
字段详细资料
-
JVM_VOID
public static final char JVM_VOID
void(V).- 另请参阅:
- 常量字段值
-
JVM_BOOLEAN
public static final char JVM_BOOLEAN
boolean(Z).- 另请参阅:
- 常量字段值
-
JVM_BYTE
public static final char JVM_BYTE
byte(B).- 另请参阅:
- 常量字段值
-
JVM_CHAR
public static final char JVM_CHAR
char(C).- 另请参阅:
- 常量字段值
-
JVM_DOUBLE
public static final char JVM_DOUBLE
double(D).- 另请参阅:
- 常量字段值
-
JVM_FLOAT
public static final char JVM_FLOAT
float(F).- 另请参阅:
- 常量字段值
-
JVM_INT
public static final char JVM_INT
int(I).- 另请参阅:
- 常量字段值
-
JVM_LONG
public static final char JVM_LONG
long(J).- 另请参阅:
- 常量字段值
-
JVM_SHORT
public static final char JVM_SHORT
short(S).- 另请参阅:
- 常量字段值
-
EMPTY_CLASS_ARRAY
public static final Class<?>[] EMPTY_CLASS_ARRAY
-
DESC_PATTERN
public static final Pattern DESC_PATTERN
-
METHOD_DESC_PATTERN
public static final Pattern METHOD_DESC_PATTERN
-
GETTER_METHOD_DESC_PATTERN
public static final Pattern GETTER_METHOD_DESC_PATTERN
-
SETTER_METHOD_DESC_PATTERN
public static final Pattern SETTER_METHOD_DESC_PATTERN
-
IS_HAS_CAN_METHOD_DESC_PATTERN
public static final Pattern IS_HAS_CAN_METHOD_DESC_PATTERN
-
-
方法详细资料
-
isPrimitives
public static boolean isPrimitives(Class<?> cls)
-
isPrimitive
public static boolean isPrimitive(Class<?> cls)
-
isCompatible
public static boolean isCompatible(Class<?> c, Object o)
is compatible.- 参数:
c- class.o- instance.- 返回:
- compatible or not.
-
isCompatible
public static boolean isCompatible(Class<?>[] cs, Object[] os)
is compatible.- 参数:
cs- class array.os- object array.- 返回:
- compatible or not.
-
getName
public static String getName(Class<?> c)
get name. java.lang.Object[][].class => "java.lang.Object[][]"- 参数:
c- class.- 返回:
- name.
-
getName
public static String getName(Method m)
get method name. "void do(int)", "void do()", "int do(java.lang.String,boolean)"- 参数:
m- method.- 返回:
- name.
-
getName
public static String getName(Constructor<?> c)
get constructor name. "()", "(java.lang.String,int)"- 参数:
c- constructor.- 返回:
- name.
-
getDesc
public static String getDesc(Class<?> c)
get class desc. boolean[].class => "[Z" Object.class => "Ljava/lang/Object;"- 参数:
c- class.- 返回:
- desc.
- 抛出:
javassist.NotFoundException
-
getDesc
public static String getDesc(Class<?>[] cs)
get class array desc. [int.class, boolean[].class, Object.class] => "I[ZLjava/lang/Object;"- 参数:
cs- class array.- 返回:
- desc.
- 抛出:
javassist.NotFoundException
-
getDesc
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.- 返回:
- desc.
-
getDesc
public static String getDesc(Constructor<?> c)
get constructor desc. "()V", "(Ljava/lang/String;I)V"- 参数:
c- constructor.- 返回:
- desc
-
getDescWithoutMethodName
public static String getDescWithoutMethodName(Method m)
get method desc. "(I)I", "()V", "(Ljava/lang/String;Z)V"- 参数:
m- method.- 返回:
- desc.
-
getDesc
public static String getDesc(javassist.CtClass c) throws javassist.NotFoundException
get class desc. Object.class => "Ljava/lang/Object;" boolean[].class => "[Z"- 参数:
c- class.- 返回:
- desc.
- 抛出:
javassist.NotFoundException
-
getDesc
public static String getDesc(javassist.CtMethod m) throws javassist.NotFoundException
get method desc. "do(I)I", "do()V", "do(Ljava/lang/String;Z)V"- 参数:
m- method.- 返回:
- desc.
- 抛出:
javassist.NotFoundException
-
getDesc
public static String getDesc(javassist.CtConstructor c) throws javassist.NotFoundException
get constructor desc. "()V", "(Ljava/lang/String;I)V"- 参数:
c- constructor.- 返回:
- desc
- 抛出:
javassist.NotFoundException
-
getDescWithoutMethodName
public static String getDescWithoutMethodName(javassist.CtMethod m) throws javassist.NotFoundException
get method desc. "(I)I", "()V", "(Ljava/lang/String;Z)V".- 参数:
m- method.- 返回:
- desc.
- 抛出:
javassist.NotFoundException
-
name2desc
public static String name2desc(String name)
name to desc. java.util.Map[][] => "[[Ljava/util/Map;"- 参数:
name- name.- 返回:
- desc.
-
desc2name
public static String desc2name(String desc)
desc to name. "[[I" => "int[][]"- 参数:
desc- desc.- 返回:
- name.
-
forName
public static Class<?> forName(ClassLoader cl, String name)
-
name2class
public static Class<?> name2class(String name) throws ClassNotFoundException
name to class. "boolean" => boolean.class "java.util.Map[][]" => java.util.Map[][].class- 参数:
name- name.- 返回:
- Class instance.
- 抛出:
ClassNotFoundException
-
desc2class
public static Class<?> desc2class(String desc) throws ClassNotFoundException
desc to class. "[Z" => boolean[].class "[[Ljava/util/Map;" => java.util.Map[][].class- 参数:
desc- desc.- 返回:
- Class instance.
- 抛出:
ClassNotFoundException
-
desc2classArray
public static Class<?>[] desc2classArray(String desc) throws ClassNotFoundException
get class array instance.- 参数:
desc- desc.- 返回:
- Class class array.
- 抛出:
ClassNotFoundException
-
findMethodByMethodSignature
@Deprecated public static Method findMethodByMethodSignature(Class<?> clazz, String methodName, String[] parameterTypes) throws NoSuchMethodException, ClassNotFoundException
已过时。Find method from method signature- 参数:
clazz- Target class to find methodmethodName- Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2- 返回:
- target method
- 抛出:
NoSuchMethodExceptionClassNotFoundExceptionIllegalStateException- when multiple methods are found (overridden method when parameter info is not provided)
-
findMethodByMethodName
@Deprecated public static Method findMethodByMethodName(Class<?> clazz, String methodName) throws NoSuchMethodException, ClassNotFoundException
已过时。- 参数:
clazz- Target class to find methodmethodName- Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2- 返回:
- target method
- 抛出:
NoSuchMethodExceptionClassNotFoundExceptionIllegalStateException- when multiple methods are found (overridden method when parameter info is not provided)
-
findConstructor
public static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType) throws NoSuchMethodException
-
isInstance
public static boolean isInstance(Object obj, String interfaceClazzName)
Check if one object is the implementation for a given interface.This method will not trigger classloading for the given interface, therefore it will not lead to error when the given interface is not visible by the classloader
- 参数:
obj- Object to examineinterfaceClazzName- The given interface- 返回:
- true if the object implements the given interface, otherwise return false
-
isBeanPropertyReadMethod
public static boolean isBeanPropertyReadMethod(Method method)
-
getPropertyNameFromBeanReadMethod
public static String getPropertyNameFromBeanReadMethod(Method method)
-
isBeanPropertyWriteMethod
public static boolean isBeanPropertyWriteMethod(Method method)
-
getPropertyNameFromBeanWriteMethod
public static String getPropertyNameFromBeanWriteMethod(Method method)
-
isPublicInstanceField
public static boolean isPublicInstanceField(Field field)
-
findParameterizedTypes
public static Set<ParameterizedType> findParameterizedTypes(Class<?> sourceClass)
Find theSetofParameterizedType
-
findHierarchicalTypes
public static <T> Set<Class<T>> findHierarchicalTypes(Class<?> sourceClass, Class<T> matchType)
-
getProperty
public static <T> T getProperty(Object bean, String methodName)
Get the value from the specified bean and its getter method.- 类型参数:
T- the type of property value- 参数:
bean- the bean instancemethodName- the name of getter- 返回:
- 从以下版本开始:
- 2.7.5
-
resolveTypes
public static Class[] resolveTypes(Object... values)
Resolve the types of the specified values- 参数:
values- the values- 返回:
- If can't be resolved, return
empty class array - 从以下版本开始:
- 2.7.6
-
makeAccessible
public static void makeAccessible(Method method)
Copy from org.springframework.util.ReflectionUtils. Make the given method accessible, explicitly setting it accessible if necessary. ThesetAccessible(true)method is only called when actually necessary, to avoid unnecessary conflicts with a JVM SecurityManager (if active).- 参数:
method- the method to make accessible- 另请参阅:
Method.setAccessible(boolean)
-
makeAccessible
public static void makeAccessible(Field field)
Copy from org.springframework.util.ReflectionUtils. Make the given field accessible, explicitly setting it accessible if necessary. ThesetAccessible(true)method is only called when actually necessary, to avoid unnecessary conflicts with a JVM SecurityManager (if active).- 参数:
field- the field to make accessible- 另请参阅:
Field.setAccessible(boolean)
-
makeAccessible
public static void makeAccessible(Constructor<?> ctor)
Copy from org.springframework.util.ReflectionUtils. Make the given constructor accessible, explicitly setting it accessible if necessary. ThesetAccessible(true)method is only called when actually necessary, to avoid unnecessary conflicts with a JVM SecurityManager (if active).- 参数:
ctor- the constructor to make accessible- 另请参阅:
Constructor.setAccessible(boolean)
-
checkZeroArgConstructor
public static boolean checkZeroArgConstructor(Class clazz)
-
isJdk
public static boolean isJdk(Class clazz)
-
-