code: public @NotNull <T> Class<? extends T> loadAs(@NotNull Class<T> superType) {
      checkNotNull(superType);
      try {
        return checkNotNull(loadType().asSubclass(superType));
      } catch (Throwable t) {
        String format = "Unable to load class '%s' as %s using ClassLoader %s";
        throw new ReflectionError(String.format(format, name, superType.getName(), classLoader), t);
      }
    }
docs: Loads the class as the given super-type.
  <p/>
  Examples:
  <pre>
  // import static  {@link org.fest.reflect.core.Reflection#type(String) org.fest.reflect.core.Reflection.type};
  
  // Loads the class 'org.republic.Jedi'
  Class&lt;?&gt; jediType = {@link org.fest.reflect.core.Reflection#type(String) type}("org.republic.Jedi").{@link org.fest.reflect.type.Type#load() load}();
  
  // Loads the class 'org.republic.Jedi' as 'org.republic.Person' (Jedi extends Person)
  Class&lt;Person&gt; jediType = {@link org.fest.reflect.core.Reflection#type(String) type}("org.republic.Jedi").{@link org.fest.reflect.type.Type#loadAs(Class) loadAs}(Person.class);
  
  // Loads the class 'org.republic.Jedi' using a custom class loader
  Class&lt;?&gt; jediType = {@link org.fest.reflect.core.Reflection#type(String) type}("org.republic.Jedi").{@link org.fest.reflect.type.Type#withClassLoader(ClassLoader) withClassLoader}(myClassLoader).{@link org.fest.reflect.type.TypeLoader#load() load}();
  </pre>
  
  @param superType the given super-type.
  @return the loaded class.
  @throws NullPointerException if the given super-type is {@code null}.
  @throws ReflectionError      wrapping any error that occurred during class loading.