提问者:小点点

如何为使用builder预初始化的对象中的属性赋值?


我有类员工作为

Class Employee{
 private String id = "TempID";
 private String name ;
}

当我使用new运算符创建对象时,一切都很好。

Employee emp = new Employee();
emp.setName("John");

结果是

emp.getId() -> TempID
emp.getName() -> John

但是,当我使用下面的生成器创建对象时

Employee emp1 = Employee.builder().setName("Mike");

结果:

emp1.getName() -> Mike
emp1.getId() -> null

如何在创建对象时使用builder获取emp1. getId()作为TempId的值,而无需显式设置值,即没有类似的东西员工.builder().name("Mike").id("TempID");

我正在使用lombok的@Builder注释


共2个答案

匿名用户

你应该试试这个

public class Employee {
    @Builder.Default
    private String id = "TempID";
    private String name;
}

匿名用户

您可以在无参数构造函数中设置默认值。

public Employee(){
    this.id = "TempID";
}