22

我有一个实体

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

我收到龙目岛警告。

警告:@Builder 将完全忽略初始化表达式。如果您希望初始化表达式用作默认值,请添加 @Builder.Default。如果在构建期间它不应该是可设置的,则将字段设置为最终字段。Set = new HashSet<>();

问题是:我怎样才能抑制龙目岛的警告?

还。我需要初始化孩子,因为我想避免 NullPointerException。我也不能将此文件标记为最终文件,因为它真的不是最终文件。我不能标记归档@Builder.Default,因为我不仅想用 builder 创建这个实体,而且我想为其他构造函数保存默认值。

4

1 回答 1

25

用于@Builder.Default为您添加默认行为Builder

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

您在定义了默认值的字段上使用它,然后将在添加对象创建功能Lombok
期间拾取该值 因此,如果您使用的是较低版本, 您将无法使用它。

@Builder.Defaultlombok v1.16.16.Lombok

于 2017-12-23T21:59:15.437 回答