docs: @Pure
  	public static <T> Collection<Class<? super T>> getSuperClasses(Class<T> className) {
  		assert className != null;
  		final Collection<Class<? super T>> list = new ArrayList<>();
  		Class<? super T> type = className.getSuperclass();
  		while (type != null && !Object.class.equals(type)) {
  			list.add(type);
  			type = type.getSuperclass();
  		}
  		return list;
  	}