Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.logging.log4j.core.util
Class ReflectionUtil

    java.lang.Object
      org.apache.logging.log4j.core.util.ReflectionUtil

    public final class ReflectionUtil

extends Object

Utility class for performing common reflective operations.

Since:
  2.1

Method Summary
`static
`<T> Constructor<T>`
` | `getDefaultConstructor(Class<T> clazz)` Gets the default (no-arg) constructor for a given class.
`static Object` | `getFieldValue(Field field, Object instance)` Gets the value of a `Field`, making it accessible if required.
`static Object` | `getStaticFieldValue(Field field)` Gets the value of a static `Field`, making it accessible if required.
`static
`<T> T`
` | `instantiate(Class<T> clazz)` Constructs a new `T` object using the default constructor of its class.
`static
`<T extends AccessibleObject & Member> boolean`
` | `isAccessible(T member)` Indicates whether or not a `Member` is both public and is contained in a public class.
`static void` | `makeAccessible(Field field)` Makes a `Field` `accessible` if it is not public or if it is final.
`static
`<T extends AccessibleObject & Member> void`
` | `makeAccessible(T member)` Makes a `Member` `accessible` if the member is not public.
`static void` | `setFieldValue(Field field, Object instance, Object value)` Sets the value of a `Field`, making it accessible if required.
`static void` | `setStaticFieldValue(Field field, Object value)` Sets the value of a static `Field`, making it accessible if required.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### isAccessible

    public static <T extends AccessibleObject & Member> boolean isAccessible(T member)

  Indicates whether or not a `Member` is both public and is contained in a public class.

  Parameters:
    `member` - the Member to check for public accessibility (must not be `null`).
  Returns:
    `true` if `member` is public and contained in a public class.
  Throws:
    `NullPointerException` - if `member` is `null`.

### makeAccessible

    public static <T extends AccessibleObject & Member> void makeAccessible(T member)

  Makes a `Member` `accessible` if the member is not public.

  Parameters:
    `member` - the Member to make accessible (must not be `null`).
  Throws:
    `NullPointerException` - if `member` is `null`.

### makeAccessible

    public static void makeAccessible(Field field)

  Makes a `Field` `accessible` if it is not public or if it is final.

  Note that using this method to make a `final` field writable will most likely not work very well due to compiler optimizations and the like.

  Parameters:
    `field` - the Field to make accessible (must not be `null`).
  Throws:
    `NullPointerException` - if `field` is `null`.

### getFieldValue

    public static Object getFieldValue(Field field,
                                       Object instance)

  Gets the value of a `Field`, making it accessible if required.

  Parameters:
    `field` - the Field to obtain a value from (must not be `null`).
    `instance` - the instance to obtain the field value from or `null` only if the field is static.
  Returns:
    the value stored by the field.
  Throws:
    `NullPointerException` - if `field` is `null`, or if `instance` is `null` but `field` is not `static`.
  See Also:
    `Field.get(Object)`

### getStaticFieldValue

    public static Object getStaticFieldValue(Field field)

  Gets the value of a static `Field`, making it accessible if required.

  Parameters:
    `field` - the Field to obtain a value from (must not be `null`).
  Returns:
    the value stored by the static field.
  Throws:
    `NullPointerException` - if `field` is `null`, or if `field` is not `static`.
  See Also:
    `Field.get(Object)`

### setFieldValue

    public static void setFieldValue(Field field,
                                     Object instance,
                                     Object value)

  Sets the value of a `Field`, making it accessible if required.

  Parameters:
    `field` - the Field to write a value to (must not be `null`).
    `instance` - the instance to write the value to or `null` only if the field is static.
    `value` - the (possibly wrapped) value to write to the field.
  Throws:
    `NullPointerException` - if `field` is `null`, or if `instance` is `null` but `field` is not `static`.
  See Also:
    `Field.set(Object, Object)`

### setStaticFieldValue

    public static void setStaticFieldValue(Field field,
                                           Object value)

  Sets the value of a static `Field`, making it accessible if required.

  Parameters:
    `field` - the Field to write a value to (must not be `null`).
    `value` - the (possibly wrapped) value to write to the field.
  Throws:
    `NullPointerException` - if `field` is `null`, or if `field` is not `static`.
  See Also:
    `Field.set(Object, Object)`

### getDefaultConstructor

    public static <T> Constructor<T> getDefaultConstructor(Class<T> clazz)

  Gets the default (no-arg) constructor for a given class.

  Type Parameters:
    `T` - the type made by the constructor
  Parameters:
    `clazz` - the class to find a constructor for
  Returns:
    the default constructor for the given class
  Throws:
    `IllegalStateException` - if no default constructor can be found

### instantiate

    public static <T> T instantiate(Class<T> clazz)

  Constructs a new `T` object using the default constructor of its class. Any exceptions thrown by the constructor will be rethrown by this method, possibly wrapped in an `UndeclaredThrowableException`.

  Type Parameters:
    `T` - the type of the object to construct.
  Parameters:
    `clazz` - the class to use for instantiation.
  Returns:
    a new instance of T made from its default constructor.
  Throws:
    `IllegalArgumentException` - if the given class is abstract, an interface, an array class, a primitive type, or void
    `IllegalStateException` - if access is denied to the constructor, or there are no default constructors

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.