Дополнительно в Ломбоке
У меня есть класс с именем 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.