code: @SuppressWarnings("unchecked")
    public static <T> Class<T> loadClass(String fullyQualifiedClassName, boolean initialize, ClassLoader classLoader) {
  
      try {
        return (Class<T>) Class.forName(fullyQualifiedClassName, initialize, classLoader);
      }
      catch (ClassNotFoundException | NoClassDefFoundError cause) {
        throw new TypeNotFoundException(String.format("Class [%s] was not found", fullyQualifiedClassName), cause);
      }
    }
docs: Loads the Class object for the specified, fully qualified class name using the provided ClassLoader and the option
  to initialize the class (calling any static initializers) once loaded.
  
  @param <T> {@link Class} type of T.
  @param fullyQualifiedClassName a String indicating the fully qualified class name of the Class to load.
  @param initialize a boolean value indicating whether to initialize the class after loading.
  @param classLoader the ClassLoader used to load the class.
  @return a Class object for the specified, fully-qualified class name.
  @throws TypeNotFoundException if the Class identified by the fully qualified class name could not be found.
  @see java.lang.Class#forName(String, boolean, ClassLoader)