Tipps für das Klonen von Java-Objekten

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“.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

KI-gestütztes Programmieren bringt IT-Herausforderungen mit sich

OutSystems-Studie: 62 Prozent der Befragten haben Sicherheits- und Governance-Bedenken bei Softwareentwicklung mit KI-Unterstützung.

2 Tagen ago

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

5 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

6 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

6 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

6 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

1 Woche ago