问题描述
答案是否定的,可能永远也不会。
您可能做错了:-)Optional
并不是null
预防的替代品,也不是预防的奇特方法NullPointerException
。这表示该问题无法回答,例如:空人员列表的平均年龄是多少。
另请参见https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks- dealing-nulls-java/
由于这些场景很少,并且Lombok希望使程序员能够编写更好的代码,所以我不希望Lombok会支持它。
披露:我是Lombok开发人员。
解决方法
我有一堂课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
a,Getter
因为如果我想在使用Lombok时返回Optional,则必须声明line2
为Optional<String>
。这将生成一个接受的生成器方法Optional<String>
!
还有其他方法可以使用lombok Optional
吗?