Lombok中的默认值。如何使用构造函数和构建器初始化默认值
我有一个对象
@Data@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
private int id;
private String nick;
private boolean isEmailConfirmed = true;
}
我用两种方式初始化它
UserInfo ui = new UserInfo();UserInfo ui2 = UserInfo.builder().build();
System.out.println("ui: " + ui.isEmailConfirmed());
System.out.println("ui2: " + ui2.isEmailConfirmed());
这是输出
ui: trueui2: false
似乎builder没有获得默认值。我在@Builder.Default
属性中添加了注释,对象现在看起来像这样
@Data@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
private int id;
private String nick;
@Builder.Default
private boolean isEmailConfirmed = true;
}
这是控制台输出
ui: falseui2: true
我怎样才能使他们俩都成为true
?
回答:
我的猜测是,这是不可能的(没有删除代码)。但是,为什么不仅仅实现所需的构造函数呢?Lombok旨在使您的生活更轻松,如果Lombok无法解决某些问题,请按照老式的方式进行操作。
@Data@Builder
@AllArgsConstructor
public class UserInfo {
private int id;
private String nick;
@Builder.Default
private boolean isEmailConfirmed = true;
public UserInfo(){
isEmailConfirmed = true;
}
}
控制台输出:
ui: trueui2: true
以上是 Lombok中的默认值。如何使用构造函数和构建器初始化默认值 的全部内容, 来源链接: utcz.com/qa/432591.html