类 ReflectUtils


  • public final class ReflectUtils
    extends Object
    ReflectUtils
    • 字段详细资料

      • 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)
      • getBoxedClass

        public static Class<?> getBoxedClass​(Class<?> c)
      • 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.
      • getCodeBase

        public static String getCodeBase​(Class<?> cls)
      • getName

        public static String getName​(Class<?> c)
        get name. java.lang.Object[][].class => "java.lang.Object[][]"
        参数:
        c - class.
        返回:
        name.
      • getGenericClass

        public static Class<?> getGenericClass​(Class<?> cls)
      • getGenericClass

        public static Class<?> getGenericClass​(Class<?> cls,
                                               int i)
      • getName

        public static String getName​(Method m)
        get method name. "void do(int)", "void do()", "int do(java.lang.String,boolean)"
        参数:
        m - method.
        返回:
        name.
      • getSignature

        public static String getSignature​(String methodName,
                                          Class<?>[] parameterTypes)
      • 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.
      • getDescArray

        public static String[] getDescArray​(Method m)
      • 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​(String name)
      • 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 examine
        interfaceClazzName - The given interface
        返回:
        true if the object implements the given interface, otherwise return false
      • getEmptyObject

        public static Object getEmptyObject​(Class<?> returnType)
      • defaultReturn

        public static Object defaultReturn​(Method m)
      • defaultReturn

        public static Object defaultReturn​(Class<?> classType)
      • 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)
      • getBeanPropertyFields

        public static Map<String,​Field> getBeanPropertyFields​(Class cl)
      • getBeanPropertyReadMethods

        public static Map<String,​Method> getBeanPropertyReadMethods​(Class cl)
      • getReturnTypes

        public static Type[] getReturnTypes​(Method method)
      • findHierarchicalTypes

        public static <T> Set<Class<T>> findHierarchicalTypes​(Class<?> sourceClass,
                                                              Class<T> matchType)
        Find the hierarchical types from the source class by specified type.
        类型参数:
        T - the type to match
        参数:
        sourceClass - the source class
        matchType - the type to match
        返回:
        non-null read-only Set
        从以下版本开始:
        2.7.5
      • 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 instance
        methodName - 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. The setAccessible(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. The setAccessible(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. The setAccessible(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)