Nothing { @SuppressWarnings("WeakerAccess") public Nothing combine(final @Nullable Nothing nothing) { return this; } private  Nothing(); @SuppressWarnings("WeakerAccess") static Function<T, Nothing> voidToNothing1(final @NotNull Consumer<? super T> consumer); @SuppressWarnings("WeakerAccess") static BiFunction<T, U, Nothing> voidToNothing2(final @NotNull BiConsumer<? super T, ? super U> consumer); @SuppressWarnings("WeakerAccess") Nothing combine(final @Nullable Nothing nothing); static final Nothing instance; }
@Test public void testCombine() { assertSame("combine Nothing to produce Nothing", Nothing.instance, Nothing.instance.combine(Nothing.instance)); }