我有一个名为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
,因为如果我想在使用Lombok时返回一个Optional,我必须将line2
声明为Optional<String>
。这将生成一个接受Optional<String>
的构建器方法!
有没有其他方法可以在Optional
中使用lombok?
发布于 2015-07-28 19:25:38
答案是否定的,而且可能永远也不会。
你可能做错了:-) Optional
不是null
的替代品,也不是防止NullPointerException
的奇妙方法。它表明这个问题是无法回答的,比如:一个空名单上的人的平均年龄是多少。
Optional
永远不应该被传递,而应该尽快被调用代码取消装箱。
另请参阅https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-java/
由于这些场景只是少数,而且Lombok喜欢让程序员编写更好的代码,我预计Lombok中不会有对它的支持。
披露:我是一名Lombok开发者。
https://stackoverflow.com/questions/31670785
复制相似问题