code: public List<Class<?>> loadClasses(final boolean ignoreExceptions) {
          if (this.isEmpty()) {
              return Collections.emptyList();
          } else {
              final List<Class<?>> classRefs = new ArrayList<>();
              // Try loading each class
              for (final ClassInfo classInfo : this) {
                  final Class<?> classRef = classInfo.loadClass(ignoreExceptions);
                  if (classRef != null) {
                      classRefs.add(classRef);
                  }
              }
              return classRefs.isEmpty() ? Collections.<Class<?>> emptyList() : classRefs;
          }
      }
docs: Convert this list of {@link ClassInfo} objects to a list of {@code Class<?>} objects. Causes the classloader
  to load the class named by each {@link ClassInfo} object, if it is not already loaded.
  
  @param ignoreExceptions
  If true, ignore any exceptions or errors thrown during classloading. If an exception or error is
  thrown during classloading, no {@code Class<?>} reference is added to the output class for the
  corresponding {@link ClassInfo} object, so the returned list may contain fewer items than this
  input list. If false, {@link IllegalArgumentException} is thrown if the class could not be loaded.
  @return The loaded {@code Class<?>} objects corresponding to each {@link ClassInfo} object in this list.
  @throws IllegalArgumentException
  if ignoreExceptions is false and an exception or error was thrown while trying to load any of the
  classes.