## org.codehaus.plexus.util.reflection
Class Reflector

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

    public final class Reflector

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

Method Summary
`java.lang.reflect.Constructor` `getConstructor(java.lang.Class targetClass, java.lang.Class[] params)` Return the constructor, checking the cache first and storing in cache if not already there..
`java.lang.Object` `getField(java.lang.Object target, java.lang.String fieldName)`
`java.lang.Object` `getField(java.lang.Object target, java.lang.String fieldName, boolean breakAccessibility)`
`java.lang.reflect.Method` `getMethod(java.lang.Class targetClass, java.lang.String methodName, java.lang.Class[] params)` Return the method, checking the cache first and storing in cache if not already there..
`java.lang.Object` `getObjectProperty(java.lang.Object target, java.lang.String propertyName)`
`java.lang.Object` `getSingleton(java.lang.Class theClass, java.lang.Object[] initParams)` Retrieve the singleton instance of a class, given the array of parameters...
`java.lang.Object` `getStaticField(java.lang.Class targetClass, java.lang.String fieldName)`
`java.lang.Object` `invoke(java.lang.Object target, java.lang.String methodName, java.lang.Object[] params)` Invoke the specified method on the specified target with the specified params...
`java.lang.Object` `invokeStatic(java.lang.Class targetClass, java.lang.String methodName, java.lang.Object[] params)` Invoke the specified static method with the specified params...
`java.lang.Object` `newInstance(java.lang.Class theClass, java.lang.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 java.lang.Object newInstance(java.lang.Class theClass,
                                        java.lang.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 java.lang.Object getSingleton(java.lang.Class theClass,
                                         java.lang.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 java.lang.Object invoke(java.lang.Object target,
                                   java.lang.String methodName,
                                   java.lang.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 java.lang.Object getStaticField(java.lang.Class targetClass,
                                           java.lang.String fieldName)
                                    throws ReflectorException

  Throws:
    `ReflectorException`

### getField

    public java.lang.Object getField(java.lang.Object target,
                                     java.lang.String fieldName)
                              throws ReflectorException

  Throws:
    `ReflectorException`

### getField

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

  Throws:
    `ReflectorException`

### invokeStatic

    public java.lang.Object invokeStatic(java.lang.Class targetClass,
                                         java.lang.String methodName,
                                         java.lang.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 java.lang.reflect.Constructor getConstructor(java.lang.Class targetClass,
                                                        java.lang.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 java.lang.Object getObjectProperty(java.lang.Object target,
                                              java.lang.String propertyName)
                                       throws ReflectorException

  Throws:
    `ReflectorException`

### getMethod

    public java.lang.reflect.Method getMethod(java.lang.Class targetClass,
                                              java.lang.String methodName,
                                              java.lang.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.