Lombok中的默认值。如何使用构造函数和构建器初始化默认值

【字号: 日期:2024-03-04浏览:58作者:雯心
如何解决Lombok中的默认值。如何使用构造函数和构建器初始化默认值?

我的猜测是,这是不可能的(没有删除代码)。但是,为什么不仅仅实现所需的构造函数呢?Lombok旨在使您的生活更轻松,如果Lombok无法解决某些问题,请按照老式的方式进行操作。

@Data@Builder@AllArgsConstructorpublic class UserInfo { private int id; private String nick; @Builder.Default private boolean isEmailConfirmed = true; public UserInfo(){isEmailConfirmed = true; }}

控制台输出:

ui: trueui2: true解决方法

我有一个对象

@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic 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@AllArgsConstructorpublic class UserInfo { private int id; private String nick; @Builder.Default private boolean isEmailConfirmed = true;}

这是控制台输出

ui: falseui2: true

我怎样才能使他们俩都成为true?

相关文章: