I'd go with: - `@Nullable Object get(String key)` - `@Nullable T get(String key, Class<T> clazz)` which throws if it's the wrong type - `boolean contains(String key)` - `boolean remove(String key)` which returns true if something has been removed See https://github.com/spring-io/initializr/pull/1759#issuecomment-3966860146