Java 8 allows for two things which might be useful;
1) static and default methods in interfaces
2) The new Optional classes are useful for config... they encapsulate the possibility of a null value and/or a default value. e.g.
public <T> Optional<T> getOptional(String key, Class<T> clazz);
public OptionalDouble getOptionalDouble(String key);
public OptionalInt getOptionalInt(String key);
public OptionalLong getOptionalLong(String key);
Java 8 allows for two things which might be useful; 1) static and default methods in interfaces 2) The new Optional classes are useful for config... they encapsulate the possibility of a null value and/or a default value. e.g.