龙目岛的可选

问题描述

答案是否定的,可能永远也不会。

您可能做错了:-)Optional并不是null预防的替代品,也不是预防的奇特方法NullPointerException。这表示该问题无法回答,例如:空人员列表的平均年龄是多少。

Optional绝对不应传递,而应尽快由调用代码取消装箱。

另请参见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
   }
}

在这里,我不得不写Buildera,Getter因为如果我想在使用Lombok时返回Optional,则必须声明line2Optional<String>。这将生成一个接受的生成器方法Optional<String>

还有其他方法可以使用lombok Optional吗?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”