Class Reflector


  • public final class Reflector
    extends Object
    Utility class used to instantiate an object using reflection. This utility hides many of the gory details needed to do this.
    Author:
    John Casey
    • Constructor Detail

      • Reflector

        public Reflector()
        Ensure no instances of Reflector are created...this is a utility.
    • Method Detail

      • newInstance

        public <T> T newInstance​(Class<T> theClass,
                                 Object[] params)
                          throws ReflectorException
        Create a new instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...
        Type Parameters:
        T - the type
        Parameters:
        theClass - The class to instantiate
        params - The parameters to pass to the constructor
        Returns:
        The instantiated object
        Throws:
        ReflectorException - In case anything goes wrong here...
      • getSingleton

        public <T> T getSingleton​(Class<T> theClass,
                                  Object[] initParams)
                           throws ReflectorException
        Retrieve the singleton instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...
        Type Parameters:
        T - the type
        Parameters:
        theClass - The class to retrieve the singleton of
        initParams - The parameters to pass to the constructor
        Returns:
        The singleton object
        Throws:
        ReflectorException - In case anything goes wrong here...
      • invoke

        public Object invoke​(Object target,
                             String methodName,
                             Object[] params)
                      throws ReflectorException
        Invoke the specified method on the specified target with the specified params...
        Parameters:
        target - The target of the invocation
        methodName - The method name to invoke
        params - The parameters to pass to the method invocation
        Returns:
        The result of the method call
        Throws:
        ReflectorException - In case of an error looking up or invoking the method.
      • invokeStatic

        public Object invokeStatic​(Class targetClass,
                                   String methodName,
                                   Object[] params)
                            throws ReflectorException
        Invoke the specified static method with the specified params...
        Parameters:
        targetClass - The target class of the invocation
        methodName - The method name to invoke
        params - The parameters to pass to the method invocation
        Returns:
        The result of the method call
        Throws:
        ReflectorException - In case of an error looking up or invoking the method.
      • getConstructor

        public <T> Constructor<T> getConstructor​(Class<T> targetClass,
                                                 Class[] params)
                                          throws ReflectorException
        Return the constructor, checking the cache first and storing in cache if not already there..
        Type Parameters:
        T - the type
        Parameters:
        targetClass - The class to get the constructor from
        params - The classes of the parameters which the constructor should match.
        Returns:
        the Constructor object that matches.
        Throws:
        ReflectorException - In case we can't retrieve the proper constructor.
      • getMethod

        public Method getMethod​(Class targetClass,
                                String methodName,
                                Class[] params)
                         throws ReflectorException
        Return the method, checking the cache first and storing in cache if not already there..
        Parameters:
        targetClass - The class to get the method from
        params - The classes of the parameters which the method should match.
        methodName - the method name
        Returns:
        the Method object that matches.
        Throws:
        ReflectorException - In case we can't retrieve the proper method.