Package 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 <T> T` `getField​(java.lang.Object obj, java.lang.String fieldName)` Get the value of a field in an object.
`static <T> T` `invoke​(java.lang.Object obj, java.lang.String methodName)` Call a method on the object with no parameters.
`static <T> T` `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 <T> T` `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 <T> T` `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.

Type Parameters:
  `T` - desired type
Parameters:
  `ofClass` - Class<T>
  `argTypes` - Class<?>[]
  `args` - Object[]
Returns:
  class instance
Since:
  Ant 1.8.0

#### invoke

    public static <T> T invoke​(java.lang.Object obj,
                               java.lang.String methodName)

Call a method on the object with no parameters.

Type Parameters:
  `T` - desired type
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 <T> T 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.

Type Parameters:
  `T` - desired type
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 <T> T 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.

Type Parameters:
  `T` - desired type
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 <T> T 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.

Type Parameters:
  `T` - desired type
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 <T> T getField​(java.lang.Object obj,
                                 java.lang.String fieldName)
                          throws BuildException

Get the value of a field in an object.

Type Parameters:
  `T` - desired type
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.