web-dev-qa-db-ja.com

lombok警告を抑制する方法

私はエンティティを持っています

@Builder
class MyEntity {
   private Set<OtherEntitiy> children = new HashSet<>()
}

そして、私はロンボクの警告を受け取ります。

警告:@Builderは初期化式を完全に無視します。初期化式をデフォルトとして機能させる場合は、@ Builder.Defaultを追加します。構築中に設定可能でない場合は、フィールドをファイナルにします。 Set = new HashSet <>();

問題は、どうすればlombokの警告を抑制できるかということです。

また。 NullPointerExceptionを回避したいので、子を初期化する必要があります。また、実際には最終ではないため、このファイルを最終としてマークすることはできません。提出済みのマークを付けることはできません@Builder.Defaultビルダーだけでなくこのエンティティを作成し、他のコンストラクターのデフォルト値を保存したいからです。

10
Bukharov Sergey

@Builder.Defaultを使用して、Builderのデフォルトの動作を追加します

@Builder
class MyEntity {
   @Builder.Default
   private Set<String> children = new HashSet<>();
}

Lombokが定義されたデフォルト値を持つフィールドで使用します
は、オブジェクトの作成中に値を取得します

@Builder.Default 機能がlombok v1.16.16.に追加されたため、Lombokの下位バージョンを使用している場合は使用できません。

1
Daniel Taub