首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Lombok中可选

在Lombok中可选
EN

Stack Overflow用户
提问于 2015-07-28 16:12:21
回答 1查看 23.2K关注 0票数 45

我有一个名为Address的类,它看起来像这样:

代码语言:javascript
复制
@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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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开发者。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31670785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档