code: @SuppressWarnings("unchecked")
  	public static <T> Iterable<Class<? extends T>> getSubclasses(Class<T> superClass, ClassLoader classLoader) {
  		Iterable<String> entries = getSubclassesNames(superClass, classLoader);
  		Set<Class<?>> classes = new HashSet<>();
  		findClasses(classLoader, classes, entries);
  		List<Class<? extends T>> subclasses = new ArrayList<>();
  
  		for (Class<?> klass : classes) {
  			if (superClass.isAssignableFrom(klass)) {
  				subclasses.add((Class<? extends T>) klass);
  			}
  		}
  
  		return subclasses;
  	}
docs: Retrieves a list of subclasses of the given class.
  <p/>
  <p>
  The class must be annotated with {@link IndexSubclasses} for it's subclasses to be indexed
  at compile-time by {@link org.atteo.classindex.processor.ClassIndexProcessor}.
  </p>
  
  @param superClass class to find subclasses for
  @param classLoader classloader for loading classes
  @return list of subclasses