java - Lombok 中带有@Builder 或@Getter 注释的默认字段值

标签 java getter builder lombok

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

或者,自定义 @Getter 以在变量为 null 时返回默认值的方法。

最佳答案

从版本 v1.16.16 开始,他们添加了 @Builder.Default

@Builder.Default lets you configure default values for your fields when using @Builder.

示例:

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

  @Builder.Default
  private Status status = Status.NEW;
}

PS: 很高兴他们还添加了警告,以防您没有使用 @Builder.Default

Warning:(35, 22) java: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.

关于java - Lombok 中带有@Builder 或@Getter 注释的默认字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314445/

相关文章:

Java 流 : Grouping, 求和和计数

java - 在java中从文件读取并将其写回文件(在理解java中的BufferedWriter写入方法时遇到困难)

C# 如何为集合创建公共(public) getter 和 setter 以及私有(private)方法?

swift - 无法在不可变值: 'self' is immutable error上使用变异 setter/getter

javascript - 动态更新对象中的 Getter 函数

构建器模式中的 java 类型推断

jquery - 使用 jQuery 基于 UI 的查询生成器

java - JNI 中的 JVM-Crash 调用 ReleaseStringUTFChars,仅在 Windows 7、Windows XP 上正常

java - 未找到 MultipartBody、multipart/form-data 的消息正文编写器

C++异步创建对象