default <T> T getOrDefault(Map<String, Object> map, BiFunction<String, Object, T> transform, Class<T> clazz, T defaultValue) { T val; return ((val = get(map, transform, clazz)) == null ? defaultValue : val); }
default <T> T getOrDefault(Map<String, Object> map, Class<T> clazz, T defaultValue) { T val; return ((val = get(map, clazz)) == null ? defaultValue : val); }
@Test public void gets_value_of_specified_type_with_transform() { ConfigOption option = newOption("foo"); Map<String, Object> config = new HashMap<>(); option.put(config, "25"); BiFunction<String, Object, Long> transform = (s, o) -> o == null ? null : new Long(o.toString()); assertThat(option.get(config, transform, Long.class), equalTo(25L)); assertThat(option.get(mapWith("foo", "25"), transform, Long.class), equalTo(25L)); }