Class GenericConstructor<T>


  • public class GenericConstructor<T>
    extends Object
    Class that allows any class to be instantiated via any accessible constructor. Really a short hand to avoid writing a bunch of reflective code.
    • Constructor Detail

      • GenericConstructor

        public GenericConstructor​(Class<T> type,
                                  String className,
                                  Class<?>... signature)
        Create a generic of type T for the untyped class cls. Generally cls is a class that has been generated and loaded, so no compiled code can depend on the class directly. However, the generated class probably implements some interface T, represented here by Class<T>.
        Parameters:
        type - The expected type of a create call.
        className - The name of the class to use for a constructor.
        signature - The signature of the desired constructor.
        Throws:
        IllegalArgumentException - if cls is not a subclass of type.
    • Method Detail

      • create

        public T create​(Object... args)
        Create an instance of type T using the constructor that matches the given arguments if possible. The constructor is cached, so an instance of GenericClass should always be used for the same types of arguments. If a call fails, a check is made to see if a different constructor could be used.
        Parameters:
        args - The constructor arguments.
        Returns:
        A new instance of the object.