相关疑难解决方法(0)

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

我有一个对象

@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

java lombok

38
推荐指数
4
解决办法
4万
查看次数

标签 统计

java ×1

lombok ×1