Tipps für das Klonen von Java-Objekten

In Java wird mittels Referenztypen Bezug auf Objekte genommen: Es gibt keine direkte Methode, die Inhalte eines Objekts in ein neues zu kopieren. Doch die clone()-Methode hilft, Objekte zur Bearbeitung zu vervielfältigen.

Beim Verweisen von einer Referenz auf eine andere wird lediglich eine weitere Referenz auf dasselbe Objekt erzeugt. Eigens deswegen gibt es eine clone()-Methode für alle Referenztypen. Damit kann ein Objekt eine Kopie von sich selbst erzeugen. Es folgen hier und auf den nächsten Seiten die Einzelheiten, die für das Klonen von Java-Objekten wichtig sind.

Warum eine lokale Kopie anlegen?

Der wahrscheinlichste Grund für das Anlegen einer lokalen Kopie eines Objekts ist, dass die Kopie modifiziert und das Objekt für den Methoden-Aufruf nicht verändert werden soll. Wenn man beschließt, eine lokale Kopie anzulegen, kann dies mittels der clone()-Methode der Object-Klasse geschehen. Die clone()-Methode ist als geschützt eingestuft, muss aber in allen Unterklassen, die eventuell geklont werden sollten, als öffentlich eingestuft werden.

Die gewöhnliche Library-Klasse ArrayList setzt clone() zum Beispiel außer Kraft. So kann für ArrayList clone() wie folgt aufgerufen werden:


Die clone()-Methode erzeugt ein Objekt, das dem entsprechenden Typ angeglichen werden muss. Dieses Beispiel zeigt, wie die clone()-Methode von ArrayList nicht automatisch versucht, jedes Objekt zu klonen, das in ArrayList enthalten ist – die alte ArrayList und die geklonte sind mit denselben Objekten verknüpft. Dies wird oft eine flache Kopie genannt, da diese nur die „Oberfläche“ eines Objekts enthält. Das tatsächliche Objekt besteht aus dieser „Oberfläche“ sowie all den Objekten, auf die die Referenzen verweisen und all den Objekten, auf die jene Objekte wiederum verweisen, und so weiter. Dies wird häufig als „Objektnetz“ bezeichnet. Wird das Ganze kopiert, spricht man von einer „tiefen Kopie“.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Tipps für das Klonen von Java-Objekten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *