Я часто делаю поле коллекции немодифицированным, прежде чем возвращать его из метода геттера:
private List<X> _xs;
....
List<X> getXs(){
return Collections.unmodifiableList(_xs);
}
Но я не могу придумать удобный способ сделать это, если X выше сам является List:
private List<List<Y>> _yLists;
.....
List<List<Y>> getYLists() {
return Collections.unmodifiableList(_yLists);
}
Проблема в том, что, несмотря на то, что клиент не может изменять список списков, он может добавлять/удалять объекты Y из встроенных списков.
Любые мысли?