web-dev-qa-db-ja.com

ロンボク島のオプション

次のような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
   }
}

ここでは、Lombokの使用中にOptionalを返したい場合、line2Optional<String>として宣言する必要があるため、BuilderGetterを記述する必要があります。そして、それはOptional<String>!を受け入れるビルダーメソッドを生成します!

Optionalでlombokを使用する他の方法はありますか?

36

答えはノーであり、おそらく決してそうではありません。

あなたはおそらくそれを間違っているのでしょう:-) Optionalnullの代替ではなく、NullPointerExceptionを防ぐための派手な方法でもありません。質問が答えられないことを示すためです。たとえば、空の人のリストの平均年齢はいくらですか。

Optionalsは決して渡されるべきではありませんが、できるだけ早く呼び出しコードによってボックス化解除されます。

https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-Java/ も参照してください

これらのシナリオはほんの一握りであり、Lombokはプログラマーがより良いコードを記述できるようにすることを好むため、Lombokでのサポートが予定されているとは思いません。

開示:私はロンボク島の開発者です。

14
Roel Spilker