龙目岛中带有@Builder或@Getter注释的默认字段值
我正在使用龙目岛注释,但我希望某些字段是可选的,并且是默认的,以避免NPE。有没有一种简单的方法来做到这一点?我找不到任何东西。@Builder
String
""
或者,一种自定义为返回默认值(如果变量为 )的方法。@Getter
null
我正在使用龙目岛注释,但我希望某些字段是可选的,并且是默认的,以避免NPE。有没有一种简单的方法来做到这一点?我找不到任何东西。@Builder
String
""
或者,一种自定义为返回默认值(如果变量为 )的方法。@Getter
null
从他们添加的版本开始。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;
}
附言:还好,如果您没有使用,他们还添加了警告。@Builder.Default
警告:(35, 22) java: @Builder将完全忽略初始化表达式。如果希望初始化表达式用作默认值,请添加@Builder.Default。如果在构建过程中不应设置,则使字段最终确定。
您必须提供如下所示的生成器类:
@Builder
public class XYZ {
private String x;
private String y;
private String z;
private static class XYZBuilder {
private String x = "X";
private String y = "Y";
private String z = "Z";
}
}
则 的默认值为 、 、 。x
y
z
"X"
"Y"
"Z"