Как мы можем поддерживать неизменность класса с изменяемой ссылкой

Я знаю все основные правила, чтобы сделать наш класс неизменным, но я немного растерялся, когда есть другая ссылка на класс. Я знаю, что если вместо 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;
    }
}
10
задан Cœur 19 March 2018 в 14:46
поделиться