我有一个对象
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
private int id;
private String nick;
private boolean isEmailConfirmed = true;
}
Run Code Online (Sandbox Code Playgroud)
我用两种方式初始化它
UserInfo ui = new UserInfo();
UserInfo ui2 = UserInfo.builder().build();
System.out.println("ui: " + ui.isEmailConfirmed());
System.out.println("ui2: " + ui2.isEmailConfirmed());
Run Code Online (Sandbox Code Playgroud)
这是输出
ui: true
ui2: false
Run Code Online (Sandbox Code Playgroud)
似乎构建器没有获得默认值.我@Builder.Default向我的属性添加注释,我的对象现在看起来像这样
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
private int id;
private String nick;
@Builder.Default
private boolean isEmailConfirmed = true;
}
Run Code Online (Sandbox Code Playgroud)
这是控制台输出
ui: false
ui2: true
Run Code Online (Sandbox Code Playgroud)
我怎么能让它们都成为true?