У меня есть класс, называемый 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.fromNullable(this.line2);
}
// and a Builder
public static class Builder {
// builder methods
}
}
Здесь я вынужден написать Builder
и Getter
, потому что, если я хочу, чтобы вернуться Факультативным при использовании Ломбок, у меня будет объявить line2
как Optional<String>
. И это будет генерировать метод построения, который принимает Optional<String>
!
Есть ли другой способ использовать ломбок с Optional
?
Я действительно ценю, что вы отвечаете на этот вопрос! Благодаря! Я знаю об этой философии, не использующей 'Факультативный' в качестве замены' null'. И это будет использовать «Необязательно», если оно используется в геттерах. Но тогда есть еще одна, более удобная, философия разработчиков Google Guava, которая позволяет использовать опцию для замены null [необязательный вариант Guava] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google /common/base/Optional.html) Итак, я лично считаю, что 'lombok' shld остался нейтральным и обеспечил поддержку autoOptional и оставил, использовать его или нет для программистов –
Мы всегда можем добавлять функции, но мы на самом деле сначала попытайтесь сосредоточиться на наиболее важных функциях. На наш взгляд, это не один из них. Мы не сталкивались с этим шаблоном. –
На самом деле есть аргументы в пользу необязательных полей и геттеров. Это может стать отличной заменой для многих мест, где вы бы использовали null, но не пытались имитировать нулевые проверки с помощью isPresent. – ymajoros