default <V> V getOrDefault(@NonNull String key, V defaultValue) {
        return this.<V>optional(key).orElse(defaultValue);
    }
Returns the value associated with the given {@code key} if it exists,
or else the {@code defaultValue}.

@param <V>          the type of the value
@param key          the key
@param defaultValue the default value to use if the value isn't present
@return the value
cloud-core/src/main/java/org/incendo/cloud/key/CloudKeyContainer.java