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“.
Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.
Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…
Cubbit ist das weltweit erste Unternehmen, das Cloud-Objektspeicher anbietet. Es wurde 2016 gegründet und bedient…
Unbefugte können Schadcode einschleusen und ausführen. Auslöser ist eine fehlerhafte Implementierung einer Android-Funktion.
iPhones und iPads belasten das Ergebnis. Außerdem schwächelt Apple im gesamten asiatischen Raum inklusive China…
Die Anzeigen richten sich an IT-Teams und Administratoren. Ziel ist der Zugriff auf IT-Systeme.