code: public static <T> T instance(Class<T> superClass) {
  		// check overriden map first
  		if (map.get(superClass) != null) {
  			return (T) JK.newInstance(map.get(superClass));
  		}
  		try {
  			return (T) context.getBean(superClass);
  		} catch (NoSuchBeanDefinitionException ex) {
  			// no bean difinition is there, so lets try to see of the class is already
  			// concrete and
  			// can be qualified to be returned
  			if (!Modifier.isAbstract(superClass.getModifiers())) {
  				return JK.newInstance(superClass.getName());
  			} else {
  				throw ex;
  			}
  		} catch (RuntimeException e) {
  			dumpBeansNames();
  			throw e;
  		}
  	}
docs: Instance.
  
  @param            <T> the generic type
  @param superClass the super class
  @return the t