Material adicional: Curso Fundamentos de Java

Episodio 4

Tu copia defensiva no protege nada | El bug del aliasing en Java

List.copyOf te da una lista nueva… con las mismas flechas adentro. Copiaste el contenedor, no el contenido: un setPrecio desde cualquier parte cambia el catálogo y el respaldo al mismo tiempo. La solución no es copiar más profundo, es que los objetos no puedan cambiar.