我的猜测是,这是不可能的(没有删除代码)。但是,为什么不仅仅实现所需的构造函数呢?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?