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