Java LanguageClonación de objetos


Observaciones

La clonación puede ser complicada, especialmente cuando los campos del objeto contienen otros objetos. Hay situaciones en las que desea realizar una copia profunda , en lugar de copiar solo los valores de campo (es decir, referencias a los otros objetos).

La conclusión es que la copia está rota , y debe pensarlo dos veces antes de implementar la interfaz Cloneable y anular el método de clone . El método de clone se declara en la clase Object y no en la interfaz Cloneable , por lo que Cloneable no funciona como interfaz porque carece de un método de clone público. El resultado es que el contrato para usar el clone está escasamente documentado y se aplica de manera débil. Por ejemplo, una clase que anula la clone veces depende de todas sus clases primarias y también anula la clone . No están obligados a hacerlo, y si no lo hacen, su código puede generar excepciones.

Una solución mucho mejor para proporcionar funcionalidad de clonación es proporcionar un constructor de copias o una fábrica de copias . Consulte el ítem 11 de Java efectivo de Joshua Bloch : Sobrescriba el clon de forma juiciosa.

Clonación de objetos Ejemplos relacionados