Class ReflectionUtil


  • public final class ReflectionUtil
    extends Object
    • Method Detail

      • accessDeclaredField

        public static <T> T accessDeclaredField​(Field f,
                                                Object o,
                                                Class<T> responseClass)
      • accessDeclaredField

        public static <T> T accessDeclaredField​(String fieldName,
                                                Class<?> cls,
                                                Object o,
                                                Class<T> responseClass)
      • getDeclaredField

        public static Field getDeclaredField​(Class<?> cls,
                                             String name)
      • getDeclaredConstructor

        public static <T> Constructor<T> getDeclaredConstructor​(Class<T> cls,
                                                                Class<?>... args)
      • getDeclaredConstructors

        public static <T> Constructor<T>[] getDeclaredConstructors​(Class<T> cls)
      • getDeclaredMethods

        public static Method[] getDeclaredMethods​(Class<?> cls)
      • getDeclaredFields

        public static Field[] getDeclaredFields​(Class<?> cls)
      • setAccessible

        public static <T extends AccessibleObject> T setAccessible​(T o)
      • setAccessible

        public static <T extends AccessibleObject> T setAccessible​(T o,
                                                                   boolean b)
      • getPropertyDescriptorsAvoidSunBug

        public static PropertyDescriptor[] getPropertyDescriptorsAvoidSunBug​(Class<?> refClass,
                                                                             BeanInfo beanInfo,
                                                                             Class<?> beanClass,
                                                                             PropertyDescriptor[] propertyDescriptors)
        create own array of property descriptors to:
          - prevent memory leaks by Introspector's cache
          - get correct type for generic properties from superclass
             that are limited to a specific type in beanClass
            see http://bugs.sun.com/view_bug.do?bug_id=6528714
           we cannot use BeanUtils.getPropertyDescriptors because of issue SPR-6063
           
        Parameters:
        refClass - calling class for class loading.
        beanInfo - Bean in question
        beanClass - class for bean in question
        propertyDescriptors - raw descriptors
      • getAnnotationForMethodOrContainingClass

        public static <T extends Annotation> T getAnnotationForMethodOrContainingClass​(Method m,
                                                                                       Class<T> annotationType)
        Look for a specified annotation on a method. If there, return it. If not, search it's containing class. Assume that the annotation is marked @Inherited.
        Parameters:
        m - method to examine
        annotationType - the annotation type to look for.