Package org.apache.tools.ant.util

## Class ReflectWrapper

- java.lang.Object
- - org.apache.tools.ant.util.ReflectWrapper

    public class ReflectWrapper
    extends java.lang.Object

Utility class to handle reflection on java objects. The class is a holder class for an object and uses java reflection to call methods on the objects. If things go wrong, BuildExceptions are thrown.

### Constructor Summary

Constructors
`ReflectWrapper​(java.lang.ClassLoader loader, java.lang.String name)` Construct a wrapped object using the no arg constructor.
`ReflectWrapper​(java.lang.Object obj)` Constructor using a passed in object.

### Method Summary

All Methods Instance Methods Concrete Methods
`<T> T` `getObject()`
`<T> T` `invoke​(java.lang.String methodName)` Call a method on the object with no parameters.
`<T> T` `invoke​(java.lang.String methodName, java.lang.Class<?> argType, java.lang.Object arg)` Call a method on the object with one argument.
`<T> T` `invoke​(java.lang.String methodName, java.lang.Class<?> argType1, java.lang.Object arg1, java.lang.Class<?> argType2, java.lang.Object arg2)` Call a method on the object with one argument.

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

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

### Constructor Detail

#### ReflectWrapper

    public ReflectWrapper​(java.lang.ClassLoader loader,
                          java.lang.String name)

Construct a wrapped object using the no arg constructor.

Parameters:
  `loader` - the classloader to use to construct the class.
  `name` - the classname of the object to construct.

#### ReflectWrapper

    public ReflectWrapper​(java.lang.Object obj)

Constructor using a passed in object.

Parameters:
  `obj` - the object to wrap.

### Method Detail

#### getObject

    public <T> T getObject()

Type Parameters:
  `T` - desired type
Returns:
  the wrapped object.

#### invoke

    public <T> T invoke​(java.lang.String methodName)

Call a method on the object with no parameters.

Type Parameters:
  `T` - desired type
Parameters:
  `methodName` - the name of the method to call
Returns:
  the object returned by the method

#### invoke

    public <T> T invoke​(java.lang.String methodName,
                        java.lang.Class<?> argType,
                        java.lang.Object arg)

Call a method on the object with one argument.

Type Parameters:
  `T` - desired type
Parameters:
  `methodName` - the name of the method to call
  `argType` - the type of argument.
  `arg` - the value of the argument.
Returns:
  the object returned by the method

#### invoke

    public <T> T invoke​(java.lang.String methodName,
                        java.lang.Class<?> argType1,
                        java.lang.Object arg1,
                        java.lang.Class<?> argType2,
                        java.lang.Object arg2)

Call a method on the object with one argument.

Type Parameters:
  `T` - desired type
Parameters:
  `methodName` - the name of the method to call
  `argType1` - the type of the first argument.
  `arg1` - the value of the first argument.
  `argType2` - the type of the second argument.
  `arg2` - the value of the second argument.
Returns:
  the object returned by the method