tengo una clase que es inmutableinmutabilidad de una clase cuando una variable de instancia presente como ArrayList
Supongamos que tengo un método getter para una variable miembro de tipo ArrayList. En ese caso, cuando obtengo una referencia a esa variable, puedo agregar o eliminar un elemento de ella. En ese caso, la inmutabilidad parece violarse.
¿Alguien puede explicar este concepto en detalle?
Consulte http://stackoverflow.com/questions/8892350/immutable-vs-unmodifiable-collection – Zaki
Vea también "Java efectivo" de Joshua Bloch, artículo 24: Haga copias defensivas cuando sea necesario. El capítulo está disponible en línea [aquí] (http://www.informit.com/articles/article.aspx?p=31551&seqNum=2) – mike9322
Si su clase se supone que es completamente inmutable, guarde la referencia a la lista _in su clase_ (después de copiar) como una instancia de 'UnmodifiableList'. No se necesitan copias de defensa (adicionales) e impide que _your_ class lo modifique durante el mantenimiento. –