Je fais souvent un champ de collecte non modifiable avant de le renvoyer à partir d'une méthode de lecture:Comment créer une collection profonde non modifiable?
private List<X> _xs;
....
List<X> getXs(){
return Collections.unmodifiableList(_xs);
}
Mais je ne peux pas penser à un moyen pratique de le faire si le X ci-dessus est lui-même une liste:
private List<List<Y>> _yLists;
.....
List<List<Y>> getYLists() {
return Collections.unmodifiableList(_yLists);
}
Le problème dans ce qui précède est bien sûr que, bien que le client ne peut pas modifier la liste des listes, il peut ajouter/supprimer des objets Y à partir des listes incorporées.
Des pensées?
C'est plutôt bien. –
Surtout après avoir fait la liste externe non modifiable aussi :-) –
Que se passe-t-il si c'est une liste d'ensembles? –