Considere lo siguiente del artículo 11 de Java efectivo (anule el clon juiciosamente) donde Josh Bloch explica qué está mal con el contrato clone()
.Java efectivo: Análisis del método clone()
Hay un número de problemas con este contrato. La disposición que "no se llaman constructores " es demasiado fuerte. Un método de clonación con buen comportamiento puede llamar a los constructores para crear objetos internos al clon en construcción. Si la clase es final, el clon puede incluso devolver un objeto creado por un constructor.
Puede alguien explicar lo que Josh Bloch está diciendo en el primer párrafo por "Si la clase es final
, clone
incluso puede devolver un objeto creado por un constructor." ¿Qué tiene que ver final
con clone()
aquí?