Дополнительно в Ломбоке

У меня есть класс с именем Address который выглядит следующим образом:

@Value
class Address {

   @NotNull String userId;
   @NotNull String line1;
   String line2;

   private Address(Builder b) {
      // copy everything from builder
   }

   // override getter for line2 so that it returns Optional<String>
   public Optional<String> getLine2() {
      return Optional.ofNullable(this.line2);
   }

   // and a Builder
   public static class Builder {
     // builder methods
   }
}

Здесь я вынужден написать Builder и Getter потому что, если я хочу вернуть Optional при использовании Lombok, мне придется объявить line2 как Optional<String>. И это сгенерирует метод построителя, который принимает Optional<String> !

Есть ли другой способ использовать ломбок с Optional?

Ответы

Ответ 1

Ответ отрицательный, и он, вероятно, никогда не будет.

Вероятно, вы ошибаетесь :-) Optional это не замена null и неприличного способа предотвращения NullPointerException. Это означает, что вопрос неопровержимо, например: каков средний возраст пустого списка лиц.

Optional никогда не следует передавать, но как можно скорее распаковать код вызова.

См. Также https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-java/

Поскольку эти сценарии - всего лишь горстка, и Ломбок любит, чтобы программисты могли писать лучший код, я не ожидаю, что в Ломбоке его будет поддерживать.

Раскрытие информации: Я разработчик Lombok.