ReflectWrapper (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.util, class: ReflectWrapper

Package org.apache.tools.ant.util

# Class ReflectWrapper

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

public class ReflectWrapper extends 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(ClassLoader loader, String name)`
  Construct a wrapped object using the no arg constructor.
  `ReflectWrapper(Object obj)`
  Constructor using a passed in object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<T> T`
  `getObject()`
  `<T> T`
  `invoke(String methodName)`
  Call a method on the object with no parameters.
  `<T> T`
  `invoke(String methodName, Class<?> argType, Object arg)`
  Call a method on the object with one argument.
  `<T> T`
  `invoke(String methodName, Class<?> argType1, Object arg1, Class<?> argType2, 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 Details

  - ### ReflectWrapper

    public ReflectWrapper(ClassLoader loader, 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(Object obj)
    Constructor using a passed in object.
    Parameters:
      `obj` - the object to wrap.

- ## Method Details

  - ### getObject

    public <T> T getObject()
    Type Parameters:
      `T` - desired type
    Returns:
      the wrapped object.

  - ### invoke

    public <T> T invoke(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(String methodName, Class<?> argType, 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(String methodName, Class<?> argType1, Object arg1, Class<?> argType2, 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