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