### Question:
Nulls { public static <T> T notNull(T value, T fallback) { if (value == null) { return fallback; } return value; }  static T notNull(T value, T fallback); static String notNull(String value); static Boolean notNull(Boolean value); static Long notNull(Long value); static BigDecimal notNull(BigDecimal value); static List<T> notNull(List<T> value); static Set<T> notNull(Set<T> value); static Map<K, V> notNull(Map<K, V> value); static void accept(T value, Consumer<T> consumer); static R apply(T value, Function<T, R> function, R fallback); static String notEmpty(String value, String fallback); static TARGET notNull(SOURCE value, PropertyValueProvider<SOURCE, TARGET> provider, TARGET fallback); static String notEmpty(SOURCE value, PropertyValueProvider<SOURCE, String> provider, String fallback); static boolean noneNullValue(T... values); static boolean anyNoneNullValue(T... values);  }### Answer:
@Test public void propertyProviderNotNullProperty() { SampleObject value = new SampleObject(); Long result = Nulls.notNull(value, SampleObject::getId, 100L); assertThat(result, notNullValue()); assertThat(result, equalTo(100L)); }