menudo hago un campo de recolección no se puede modificar antes de devolverla a partir de un método de obtención:¿Cómo crear una colección profunda no modificable?
private List<X> _xs;
....
List<X> getXs(){
return Collections.unmodifiableList(_xs);
}
Pero no puedo pensar en una manera conveniente de hacer eso si el X anterior es en sí misma una lista:
private List<List<Y>> _yLists;
.....
List<List<Y>> getYLists() {
return Collections.unmodifiableList(_yLists);
}
El problema en lo anterior es, por supuesto, que aunque el cliente no puede modificar la Lista de listas, puede agregar/eliminar objetos Y de las listas incrustadas.
¿Alguna idea?
Eso está bastante bien. –
Especialmente después de que hice la lista externa no modificable también :-) –
¿Qué sucede si se trata de una lista de conjuntos? –