Class 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 
      Modifier and Type Method Description
      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.