Dhr*_*aya 36 java optional 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
}
}
Run Code Online (Sandbox Code Playgroud)
在这里我被迫写Builder
了一个Getter
因为,如果我想在使用Lombok时返回一个Optional,我必须声明line2
为Optional<String>
.这将生成一个接受的构建器方法Optional<String>
!
还有其他方法可以使用lombok Optional
吗?
Roe*_*ker 14
答案是否定的,而且可能永远不会.
你可能做错了:-) Optional
不是替代,null
也不是预防的奇特方式NullPointerException
.这表明这个问题是无法回答的,例如:一个空列表的平均年龄是多少.
Optional
应该永远不会传递s,但是尽快通过调用代码取消装箱.
另请参见https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-java/
由于这些场景只是少数几个,而Lombok喜欢让程序员编写更好的代码,我不希望在Lombok中会有它的支持.
披露:我是Lombok开发人员.
归档时间: |
|
查看次数: |
11489 次 |
最近记录: |