@Override
      public @NotNull T create() {
        T result = value;
        if (result == null) {
          value = result = ref.get().getValue();
          ref.set(null);
        }
        return result;
      }
@Override
      public @NotNull T create()