在Lombok中使用@Builder或@Getter注释的默认字段值

Haz*_*ost 9 java getter builder lombok

我正在使用Lombok @Builder注释,但我希望某些String字段是可选的,默认""为避免使用NPE.是否有捷径可寻?我找不到任何东西.

或者,@Getter如果变量是自定义以返回默认值的方法null.

Jaf*_*KhQ 7

v1.16.16他们添加的版本开始@Builder.Default.

@Builder.Default允许您在使用时为字段配置默认值@Builder.

例:

@Setter
@Getter
@Builder
public class MyData {
  private Long id;
  private String name;

  @Builder.Default
  private Status status = Status.NEW;
}
Run Code Online (Sandbox Code Playgroud)

PS:不错的是,如果你不使用它们,它们也会添加警告@Builder.Default.

警告:(35,22)java:@Builder将完全忽略初始化表达式.如果要将初始化表达式用作默认值,请添加@Builder.Default.如果在建筑期间不应该设置,请将该字段设为最终.

  • 一点都不好看!如果你使用`@Default.Builder` **和** `@NoArgsConstructor`(我知道它没有意义**但**有时由于某些框架你**必须**不提供参数构造函数),初始化器在默认构造函数中**不**使用!这是一个严重的错误。 (3认同)