Woo*_*ody -1 java builder object
我已经建立了(使用Builder
模式)具有三个字段的Employee对象Name
,Age
并且Gender
。
public class Employee {
private String name;
private String age;
private String gender;
// Constructor
private Employee(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.gender = builder.gender;
}
// Employee Builder
public static class Builder {
private String name;
private String age;
private String gender;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(String age) {
this.age = age;
return this;
}
public Builder gender(String gender) {
this.gender = gender;
return this;
}
}
// Getters
public String getName() {
return name;
}
public String getAge() {
return age;
}
public String getGender() {
return gender;
}
}
Run Code Online (Sandbox Code Playgroud)
现在在以下课程中,我建立了我的Employee对象,
public class TestEmployee {
public static void main(String[] args) throws IOException {
Employee employee = new Employee.Builder().age("23").gender("Male").name("John").build();
System.out.println("Name : " + employee.getName());
System.out.println("Age : " + employee.getAge());
System.out.println("Gender : " + employee.getGender());
}
}
Run Code Online (Sandbox Code Playgroud)
如何通过破坏已建立的雇员对象来修改雇员“约翰”的年龄?
仅供参考:我不想出现Setters
在我的Employee
对象中。
您想要修改一个不可变的对象。您看到那里的问题了吗?
添加setter(或更改状态的任何方法)或接受对象是不可变的。
您当然可以根据旧对象的值创建一个新对象,但是那时它将不是同一对象。
归档时间: |
|
查看次数: |
2685 次 |
最近记录: |