我知道所有基本規則來使我們的類不可變,但是當有另一個類引用時我有點困惑。我知道如果有收集而不是Address
那麼我們可以利用Collections.unmodifiableList(new ArrayList<>(modifiable));
然後我們可以讓我們的類不可變。但在下面的情況下,我仍然無法得到這個概念。我們如何保持一個具有可變引用的類的不變性
public final class Employee{
private final int id;
private Address address;
public Employee(int id, Address address)
{
this.id = id;
this.address=address;
}
public int getId(){
return id;
}
public Address getAddress(){
return address;
}
}
public class Address{
private String street;
public String getStreet(){
return street;
}
public void setStreet(String street){
this.street = street;
}
}
'Employee'並不是一成不變的,而且也沒有什麼可以做改變,如果你不能改變'Address'類來支持最低限度的複製,但最好首先使'Address'不變。 –