私はエンティティを持っています
@Builder
class MyEntity {
private Set<OtherEntitiy> children = new HashSet<>()
}
そして、私はロンボクの警告を受け取ります。
警告:@Builderは初期化式を完全に無視します。初期化式をデフォルトとして機能させる場合は、@ Builder.Defaultを追加します。構築中に設定可能でない場合は、フィールドをファイナルにします。 Set = new HashSet <>();
問題は、どうすればlombokの警告を抑制できるかということです。
また。 NullPointerExceptionを回避したいので、子を初期化する必要があります。また、実際には最終ではないため、このファイルを最終としてマークすることはできません。提出済みのマークを付けることはできません@Builder.Default
ビルダーだけでなくこのエンティティを作成し、他のコンストラクターのデフォルト値を保存したいからです。
@Builder.Default
を使用して、Builder
のデフォルトの動作を追加します
@Builder
class MyEntity {
@Builder.Default
private Set<String> children = new HashSet<>();
}
Lombok
が定義されたデフォルト値を持つフィールドで使用します
は、オブジェクトの作成中に値を取得します@Builder.Default
機能がlombok v1.16.16.
に追加されたため、Lombok
の下位バージョンを使用している場合は使用できません。