mam klasę, która jest niezmiennaniezmienność klasy, gdy zmienna występuje jako przykład ArrayList
Załóżmy, że jest metoda o cechach gettera dla zmiennej składowej typu ArrayList. W takim przypadku, gdy otrzymam odwołanie do tej zmiennej, mogę dodać lub usunąć z niej element. W tym przypadku wydaje się, że niezmienność zostaje naruszona.
Czy ktoś może wyjaśnić tę koncepcję w szczegółach?
Zobacz http://stackoverflow.com/questions/8892350/immutable-vs-unmodifiable-collection – Zaki
Zobacz także "Efektywna Java" Joshua Blocha, pozycja 24: Wykonuj defensywne kopie w razie potrzeby. Rozdział jest dostępny online [tutaj] (http://www.informit.com/articles/article.aspx?p=31551&seqNum=2) – mike9322
Jeśli klasa ma być całkowicie niezmienna, zapisz odniesienie do listy _in twoja klasa_ (po kopiowaniu) jako instancja 'UnmodifiableList'. Nie potrzeba żadnych (dodatkowych) defensywnych kopii, a to zapobiega modyfikacji twojej klasy podczas konserwacji. –