簡體   English   中英

在龍目島可選

[英]Optional in 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
   }
}

在這里,我被迫編寫BuilderGetter因為如果我想在使用 Lombok 時返回 Optional,我將不得不將line2聲明為Optional<String> 這將生成一個接受Optional<String>的構建器方法!

有沒有其他方法可以將 lombok 與Optional一起使用?

答案是否定的,而且可能永遠不會。

你可能做錯了 :-) Optional不是null的替代品,也不是防止NullPointerException的奇特方法。 表示這個問題是無法回答的,比如:一個空的人名單的平均年齡是多少。

Optional s 不應該被傳遞,而是盡快被調用代碼拆箱。

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

由於這些場景只是少數,而且 Lombok 喜歡讓程序員能夠編寫更好的代碼,我不希望 Lombok 會支持它。

披露:我是龍目島的開發人員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM