龙目岛可选

2022-08-31 22:37:48

我有一个名为这样的类: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
   }
}

在这里,我被迫写一个,因为,如果我想在使用龙目岛时返回一个可选,我将不得不声明为.这将生成一个接受的生成器方法!BuilderGetterline2Optional<String>Optional<String>

有没有其他方法可以使用龙目岛?Optional


答案 1

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

你可能做错了:-) 既不是预防的替代品,也不是预防的花哨方法。这是为了表明这个问题是无法回答的,例如:空名单的平均年龄是多少。OptionalnullNullPointerException

Optionals 永远不应该传递,但应尽快由调用代码取消装箱。

另请参见 https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-java/

由于这些场景只是少数,并且龙目岛喜欢使程序员能够编写更好的代码,因此我不希望龙目岛会支持它。

披露:我是龙目岛开发者。


答案 2

推荐