code: <T> Class<T> loadClass(final Class<T> superclassOrInterfaceType, final boolean ignoreExceptions) {
          if (classRef == null) {
              classRef = scanResult.loadClass(getClassInfoNameOrClassName(), superclassOrInterfaceType,
                      ignoreExceptions);
          }
          @SuppressWarnings("unchecked")
          final Class<T> classT = (Class<T>) classRef;
          return classT;
      }
docs: Load the class named returned by {@link #getClassInfo()}, or if that returns null, the class named by
  {@link #getClassName()}. Returns a {@code Class<?>} reference for the class, cast to the requested superclass
  or interface type.
  
  @param <T>
  the superclass or interface type
  @param superclassOrInterfaceType
  The type to cast the resulting class reference to.
  @param ignoreExceptions
  If true, ignore classloading exceptions and return null on failure.
  @return The {@code Class<?>} reference for the referenced class, or null if the class could not be loaded (or
  casting failed) and ignoreExceptions is true.
  @throws IllegalArgumentException
  if the class could not be loaded or cast, and ignoreExceptions was false.