Я знаю все основные правила, чтобы сделать наш класс неизменным, но я немного растерялся, когда есть другая ссылка на класс. Я знаю, что если вместо 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;
}
}