docs: @SuppressWarnings("unchecked")
  	public <T> Class<T> getClass(String key, Class<? extends T> defaultValue, ClassLoader classLoader) throws ClassNotFoundException {
  		Object o = getRawValue(key);
  		if (o == null) {
  			return (Class<T>) defaultValue;
  		}
  
  		if (o.getClass() == String.class) {
  			return (Class<T>) Class.forName((String) o, true, classLoader);
  		}
  
  		LOG.warn("Configuration cannot evaluate value " + o + " as a class name");
  		return (Class<T>) defaultValue;
  	}