org.codehaus.plexus.util.reflection

## Class Reflector

- java.lang.Object
- - org.codehaus.plexus.util.reflection.Reflector

    public final class Reflector
    extends Object

Utility class used to instantiate an object using reflection. This utility hides many of the gory details needed to do this.

Author:
  John Casey

### Constructor Summary

Constructors
Constructor and Description
`Reflector()` Ensure no instances of Reflector are created...this is a utility.

### Method Summary

All Methods Instance Methods Concrete Methods
`<T> Constructor<T>` `getConstructor(Class<T> targetClass, Class[] params)` Return the constructor, checking the cache first and storing in cache if not already there..
`Object` `getField(Object target, String fieldName)`
`Object` `getField(Object target, String fieldName, boolean breakAccessibility)`
`Method` `getMethod(Class targetClass, String methodName, Class[] params)` Return the method, checking the cache first and storing in cache if not already there..
`Object` `getObjectProperty(Object target, String propertyName)`
`<T> T` `getSingleton(Class<T> theClass, Object[] initParams)` Retrieve the singleton instance of a class, given the array of parameters...
`Object` `getStaticField(Class targetClass, String fieldName)`
`Object` `invoke(Object target, String methodName, Object[] params)` Invoke the specified method on the specified target with the specified params...
`Object` `invokeStatic(Class targetClass, String methodName, Object[] params)` Invoke the specified static method with the specified params...
`<T> T` `newInstance(Class<T> theClass, Object[] params)` Create a new instance of a class, given the array of parameters...

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

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

### Constructor Detail

#### Reflector

    public Reflector()

Ensure no instances of Reflector are created...this is a utility.

### Method Detail

#### newInstance

    public <T> T newInstance(Class<T> theClass,
                             Object[] params)
                      throws ReflectorException

Create a new instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...

Parameters:
  `theClass` - The class to instantiate
  `params` - The parameters to pass to the constructor
Returns:
  The instantiated object
Throws:
  `ReflectorException` - In case anything goes wrong here...

#### getSingleton

    public <T> T getSingleton(Class<T> theClass,
                              Object[] initParams)
                       throws ReflectorException

Retrieve the singleton instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...

Parameters:
  `theClass` - The class to retrieve the singleton of
  `initParams` - The parameters to pass to the constructor
Returns:
  The singleton object
Throws:
  `ReflectorException` - In case anything goes wrong here...

#### invoke

    public Object invoke(Object target,
                         String methodName,
                         Object[] params)
                  throws ReflectorException

Invoke the specified method on the specified target with the specified params...

Parameters:
  `target` - The target of the invocation
  `methodName` - The method name to invoke
  `params` - The parameters to pass to the method invocation
Returns:
  The result of the method call
Throws:
  `ReflectorException` - In case of an error looking up or invoking the method.

#### getStaticField

    public Object getStaticField(Class targetClass,
                                 String fieldName)
                          throws ReflectorException

Throws:
  `ReflectorException`

#### getField

    public Object getField(Object target,
                           String fieldName)
                    throws ReflectorException

Throws:
  `ReflectorException`

#### getField

    public Object getField(Object target,
                           String fieldName,
                           boolean breakAccessibility)
                    throws ReflectorException

Throws:
  `ReflectorException`

#### invokeStatic

    public Object invokeStatic(Class targetClass,
                               String methodName,
                               Object[] params)
                        throws ReflectorException

Invoke the specified static method with the specified params...

Parameters:
  `targetClass` - The target class of the invocation
  `methodName` - The method name to invoke
  `params` - The parameters to pass to the method invocation
Returns:
  The result of the method call
Throws:
  `ReflectorException` - In case of an error looking up or invoking the method.

#### getConstructor

    public <T> Constructor<T> getConstructor(Class<T> targetClass,
                                             Class[] params)
                                      throws ReflectorException

Return the constructor, checking the cache first and storing in cache if not already there..

Parameters:
  `targetClass` - The class to get the constructor from
  `params` - The classes of the parameters which the constructor should match.
Returns:
  the Constructor object that matches.
Throws:
  `ReflectorException` - In case we can't retrieve the proper constructor.

#### getObjectProperty

    public Object getObjectProperty(Object target,
                                    String propertyName)
                             throws ReflectorException

Throws:
  `ReflectorException`

#### getMethod

    public Method getMethod(Class targetClass,
                            String methodName,
                            Class[] params)
                     throws ReflectorException

Return the method, checking the cache first and storing in cache if not already there..

Parameters:
  `targetClass` - The class to get the method from
  `params` - The classes of the parameters which the method should match.
Returns:
  the Method object that matches.
Throws:
  `ReflectorException` - In case we can't retrieve the proper method.