Class ClassFactory


  • public final class ClassFactory
    extends java.lang.Object
    Creates new instances of classes.

    This code handles the case where the class is not public or the constructor is not public.

    Since:
    2.0
    Author:
    Kohsuke Kawaguchi
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassFactory()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void cleanCache()  
      static <T> T create​(java.lang.Class<T> clazz)
      The same as create0(java.lang.Class<T>) but with an error handling to make the instantiation error fatal.
      static java.lang.Object create​(java.lang.reflect.Method method)
      Call a method in the factory class to get the object.
      static <T> T create0​(java.lang.Class<T> clazz)
      Creates a new instance of the class but throw exceptions without catching it.
      static <T> java.lang.Class<? extends T> inferImplClass​(java.lang.Class<T> fieldType, java.lang.Class[] knownImplClasses)
      Infers the instanciable implementation class that can be assigned to the given field type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassFactory

        public ClassFactory()
    • Method Detail

      • cleanCache

        public static void cleanCache()
      • create0

        public static <T> T create0​(java.lang.Class<T> clazz)
                             throws java.lang.IllegalAccessException,
                                    java.lang.reflect.InvocationTargetException,
                                    java.lang.InstantiationException
        Creates a new instance of the class but throw exceptions without catching it.
        Throws:
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.InstantiationException
      • create

        public static <T> T create​(java.lang.Class<T> clazz)
        The same as create0(java.lang.Class<T>) but with an error handling to make the instantiation error fatal.
      • create

        public static java.lang.Object create​(java.lang.reflect.Method method)
        Call a method in the factory class to get the object.
      • inferImplClass

        public static <T> java.lang.Class<? extends T> inferImplClass​(java.lang.Class<T> fieldType,
                                                                      java.lang.Class[] knownImplClasses)
        Infers the instanciable implementation class that can be assigned to the given field type.
        Returns:
        null if inference fails.