Package 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
Description
`Reflector()`
Ensure no instances of Reflector are created...this is a utility.

## Method Summary

Modifier and Type
Method
Description
`<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 Details

### Reflector

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

## Method Details

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

Type Parameters:
  `T` - the type
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...

Type Parameters:
  `T` - the type
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..

Type Parameters:
  `T` - the type
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.
  `methodName` - the method name
Returns:
  the Method object that matches.
Throws:
  `ReflectorException` - In case we can't retrieve the proper method.