Package org.apache.cxf.common.util

# Class ReflectionUtil

java.lang.Object
org.apache.cxf.common.util.ReflectionUtil

public final class ReflectionUtil extends Object

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T> T`
  `accessDeclaredField(Field f, Object o, Class<T> responseClass)`
  `static <T> T`
  `accessDeclaredField(String fieldName, Class<?> cls, Object o, Class<T> responseClass)`
  `static <T extends Annotation>
  T`
  `getAnnotationForMethodOrContainingClass(Method m, Class<T> annotationType)`
  Look for a specified annotation on a method.
  `static <T> Constructor<T>`
  `getConstructor(Class<T> cls, Class<?>... args)`
  `static <T> Constructor<T>`
  `getDeclaredConstructor(Class<T> cls, Class<?>... args)`
  `static <T> Constructor<T>[]`
  `getDeclaredConstructors(Class<T> cls)`
  `static Field`
  `getDeclaredField(Class<?> cls, String name)`
  `static Field[]`
  `getDeclaredFields(Class<?> cls)`
  `static Method`
  `getDeclaredMethod(Class<?> clazz, String name, Class<?>... parameterTypes)`
  `static Method[]`
  `getDeclaredMethods(Class<?> cls)`
  `static Method`
  `getMethod(Class<?> clazz, String name, Class<?>... parameterTypes)`
  `static PropertyDescriptor[]`
  `getPropertyDescriptorsAvoidSunBug(Class<?> refClass, BeanInfo beanInfo, Class<?> beanClass, PropertyDescriptor[] propertyDescriptors)`
  create own array of property descriptors to:
  `static <T extends AccessibleObject>
  T`
  `setAccessible(T o)`
  `static <T extends AccessibleObject>
  T`
  `setAccessible(T o, boolean b)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### 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)

  - ### getConstructor

    public static <T> Constructor<T> getConstructor(Class<T> cls, Class<?>... args)

  - ### getDeclaredConstructors

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

  - ### getDeclaredMethods

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

  - ### getDeclaredMethod

    public static Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... parameterTypes) throws NoSuchMethodException
    Throws:
      `NoSuchMethodException`

  - ### getMethod

    public static Method getMethod(Class<?> clazz, String name, Class<?>... parameterTypes) throws NoSuchMethodException
    Throws:
      `NoSuchMethodException`

  - ### 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.