public static <V> DeferredValue<V> withValue(V value) {
        if (value == null) {
            return NULL_VALUE;
        }
        DeferredValue<V> deferredValue = new DeferredValue<>();
        deferredValue.value = value;
        deferredValue.valueExists = true;
        return deferredValue;
    }
@Test
    public void test_setOfValues() {
        assertTrue(deferredSet.contains(DeferredValue.withValue("1")));
        assertTrue(deferredSet.contains(DeferredValue.withValue("2")));
        assertTrue(deferredSet.contains(DeferredValue.withValue("3")));
        assertFalse(deferredSet.contains(DeferredValue.withValue("4")));
    }