Реализация по умолчанию общего ссылочного класса в Java

Есть ли какой-нибудь шаблон для написания простого класса-держателя в Javaили, что еще лучше, повторно использовать существующую реализацию?

java.xml.ws.Holder класс выставляет свою ценность через публичное поле и java.util.Optional не поддерживает установку значений после инициализации. Лучшим подходом может быть реализация Supplier<T> интерфейс с дополнительным set() метод, например

public class SimpleSupplier implements Supplier<T> {
  private T value;
  public SimpleSupplier(T value) {
    this.value = value;
  }  
  public T get() {
    return this.value;
  }
  public final void set(T value) {
    this.value = value;
  }
}

Такой класс, в некотором смысле, будет противоположностью AtomicReference класс, просто для хранения ссылки неатомарным способом. Что в этом случае будет хорошим соглашением об именах? SharedReference, может быть?

Типичный пример прохождения Consumer<T> Объект с помощью лямбда-выражения:

Optional<T> holder = ... // Calculate an optional value
AtomicReference<T> ref = new AtomicReference<T>();
holder.ifPresent(ref -> {
  // Do something and update ref
});
T value = ref.get();

0 ответов

Другие вопросы по тегам