code: public <T> T getAsType(String propertyName, Class<T> type, T defaultValue) {
      return defaultIfNotSet(propertyName, defaultValue, type);
    }
docs: Gets the assigned value of the named property as an instance of the specified {@link Class} type
  or the default value if the named property does not exist.
  
  @param <T> {@link Class} type of the return value.
  @param propertyName the name of the property to get.
  @param type Class type of the value to return for the specified property.
  @param defaultValue the default value to return if the named property does not exist.
  @return the assigned value of the named property as an instance of the specified {@link Class} type
  or the default value if the named property does not exist.
  @see #defaultIfNotSet(String, Object, Class)
  @see java.lang.Class