gpt4 book ai didi

java - 如何在引用可变对象时使类不可变?

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:27 25 4
gpt4 key购买 nike

假设我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com