Original von Markus
Dafür hilft bei Java meiner Erkenntnis nach nur ein Objekt zu serialisieren und wieder deserialisieren (gibt es dieses Wort?).
Das ist die eine, aber sehr imperformante, Möglichkeit, eine Deep-Copy zu erzeugen. Außerdem hast Du nicht immer die Möglichkeit dazu (z. B. wenn ein Objekt einer Fremdlib nicht serialisierbar ist). Besser, wenn Du ein bisschen auf die Geschwindigkeit achten musst, ist es, wenn du hier selbst Hand anlegst.
Man kann Deep-Copys für beliebige Objektstrukturen erzeugen. Allerdings kann dies recht komplex werden, gerade wenn es sich um komplizierte Graphenstrukturen handelt (aber machbar ist das alles).
BTW.: dies ist das snippet der Wahl, wenn es um flache Kopien geht.
|
Source code
|
1
2
3
4
5
6
7
|
public Object clone() {
try {
return super.clone();
} catch ( CloneNotSupportedException e) {
throw new Error("aaargh", e);
}
}
|