org.apache.tools.ant.util

## Class ReflectUtil

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

    public class ReflectUtil
    extends java.lang.Object

Utility class to handle reflection on java objects. The class contains static methods to call reflection methods, catch any exceptions, converting them to BuildExceptions.

### Method Summary

All Methods Static Methods Concrete Methods
`static java.lang.Object` `getField(java.lang.Object obj, java.lang.String fieldName)` Get the value of a field in an object.
`static java.lang.Object` `invoke(java.lang.Object obj, java.lang.String methodName)` Call a method on the object with no parameters.
`static java.lang.Object` `invoke(java.lang.Object obj, java.lang.String methodName, java.lang.Class<?> argType, java.lang.Object arg)` Call a method on the object with one argument.
`static java.lang.Object` `invoke(java.lang.Object obj, 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 two argument.
`static java.lang.Object` `invokeStatic(java.lang.Object obj, java.lang.String methodName)` Call a method on the object with no parameters.
`static <T> T` `newInstance(java.lang.Class<T> ofClass, java.lang.Class<?>[] argTypes, java.lang.Object[] args)` Create an instance of a class using the constructor matching the given arguments.
`static boolean` `respondsTo(java.lang.Object o, java.lang.String methodName)` A method to test if an object responds to a given message (method call)
`static void` `throwBuildException(java.lang.Exception t)` A method to convert an invocationTargetException to a buildexception and throw it.
`static BuildException` `toBuildException(java.lang.Exception t)` A method to convert an invocationTargetException to a buildexception.

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

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

### Method Detail

#### newInstance

    public static <T> T newInstance(java.lang.Class<T> ofClass,
                                    java.lang.Class<?>[] argTypes,
                                    java.lang.Object[] args)

Create an instance of a class using the constructor matching the given arguments.

Since:
  Ant 1.8.0

#### invoke

    public static java.lang.Object invoke(java.lang.Object obj,
                                          java.lang.String methodName)

Call a method on the object with no parameters.

Parameters:
  `obj` - the object to invoke the method on.
  `methodName` - the name of the method to call
Returns:
  the object returned by the method

#### invokeStatic

    public static java.lang.Object invokeStatic(java.lang.Object obj,
                                                java.lang.String methodName)

Call a method on the object with no parameters. Note: Unlike the invoke method above, this calls class or static methods, not instance methods.

Parameters:
  `obj` - the object to invoke the method on.
  `methodName` - the name of the method to call
Returns:
  the object returned by the method

#### invoke

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

Call a method on the object with one argument.

Parameters:
  `obj` - the object to invoke the method on.
  `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 static java.lang.Object invoke(java.lang.Object obj,
                                          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 two argument.

Parameters:
  `obj` - the object to invoke the method on.
  `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

#### getField

    public static java.lang.Object getField(java.lang.Object obj,
                                            java.lang.String fieldName)
                                     throws BuildException

Get the value of a field in an object.

Parameters:
  `obj` - the object to look at.
  `fieldName` - the name of the field in the object.
Returns:
  the value of the field.
Throws:
  `BuildException` - if there is an error.

#### throwBuildException

    public static void throwBuildException(java.lang.Exception t)
                                    throws BuildException

A method to convert an invocationTargetException to a buildexception and throw it.

Parameters:
  `t` - the invocation target exception.
Throws:
  `BuildException` - the converted exception.

#### toBuildException

    public static BuildException toBuildException(java.lang.Exception t)

A method to convert an invocationTargetException to a buildexception.

Parameters:
  `t` - the invocation target exception.
Returns:
  the converted exception.
Since:
  ant 1.7.1

#### respondsTo

    public static boolean respondsTo(java.lang.Object o,
                                     java.lang.String methodName)
                              throws BuildException

A method to test if an object responds to a given message (method call)

Parameters:
  `o` - the object
  `methodName` - the method to check for
Returns:
  true if the object has the method.
Throws:
  `BuildException` - if there is a problem.