code: @Override
      public <T> T get(String name, T defaultValue) {
          Class<T> type = PropertyUtil.getType(defaultValue);
          T value = get(name, type);
          return value != null ? value : defaultValue;
      }
docs: Gets an inherited value.
  
  @param name         the property name or path
  @param defaultValue the default value, must not be <code>null</code>
  @param <T>          the expected type of the value
  @return inherited value if existing, otherwise the default value