Looking for java Keywords? Try Ask4Keywords

Java LanguageObjektklonen


Bemerkungen

Das Klonen kann schwierig sein, insbesondere wenn die Felder des Objekts andere Objekte enthalten. Es gibt Situationen, in denen Sie eine tiefe Kopie erstellen möchten, anstatt nur die Feldwerte zu kopieren (dh Verweise auf die anderen Objekte).

Unterm Strich ist Klon ist gebrochen , und Sie sollten sich zweimal überlegen , bevor Sie die Umsetzung Cloneable Schnittstelle und das Überschreiben der clone - Methode. Die clone Methode ist in der Object Klasse und nicht in der Cloneable Schnittstelle Cloneable funktioniert daher nicht als Schnittstelle, da es keine öffentliche clone Methode gibt. Das Ergebnis ist, dass der Vertrag für die Verwendung von clone dünn dokumentiert und schwach durchgesetzt wird. Eine Klasse, die den clone überschreibt, ist beispielsweise darauf angewiesen, dass alle übergeordneten Klassen den clone überschreiben. Sie werden dazu nicht erzwungen und wenn dies nicht der Fall ist, kann Ihr Code Ausnahmen auslösen.

Eine viel bessere Lösung für die Bereitstellung von Klonfunktionen ist das Bereitstellen eines Kopierkonstruktors oder einer Kopierfabrik . Siehe Joshua Blochs Effektives Java- Element 11: Überschreiben Sie den Klon mit Bedacht.

Objektklonen Verwandte Beispiele