假设我在 java 中有一个名为 Employee 的类,看起来像这样
public class Employee {
private String empName;
private int empId;
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
}
现在我想在一个不可变的类中使用这个对象,假设是一家公司,格式如下。条件是我不能修改
public final class Company {
final String companyName;
final Employee employee;
public Company(String companyName, Employee employee) {
this.companyName = companyName;
this.employee = employee;
}
public String getCompanyName() {
return companyName;
}
public Employee getEmployee() {
return employee;
}
}
所以我的问题是,当我引用可以修改的内部对象时,这是使 Company 类不可变的有效方法吗?
最佳答案
本文引用 https://www.journaldev.com/129/how-to-create-immutable-class-in-java在最终类的构造函数中对 Employee 对象进行深度克隆。这样您就不会使用对象引用。
关于java - 如何在引用可变对象时使类不可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902839/