Hallo,
ich möchte von einem Objekt meiner Klasse eine echte Kopie erstellen, d.h. sie sollen danach völlig unabhängig von einander weiter bearbeitbar sein.
Momentan kann ich zwar eine Kopie erstellen, aber sobald ich in einer der beiden Objekte (Original+Kopie) etwas verändere, dann passiert die Änderung auch in dem anderen Objekt, was darauf zurückzuführen ist, dass ich nur die Referenz kopiert habe. Ich habe deswegen clone() von der Schnittstelle Cloneable überschrieben, aber irgendwie geht das auch nicht.
Mein Quellcode:
Was mach ich falsch?
Danke für jeden Tipp!
Tschau
ich möchte von einem Objekt meiner Klasse eine echte Kopie erstellen, d.h. sie sollen danach völlig unabhängig von einander weiter bearbeitbar sein.
Momentan kann ich zwar eine Kopie erstellen, aber sobald ich in einer der beiden Objekte (Original+Kopie) etwas verändere, dann passiert die Änderung auch in dem anderen Objekt, was darauf zurückzuführen ist, dass ich nur die Referenz kopiert habe. Ich habe deswegen clone() von der Schnittstelle Cloneable überschrieben, aber irgendwie geht das auch nicht.
Mein Quellcode:
Code:
protected Object clone()
{
try
{
return super.clone();
}catch (CloneNotSupportedException e)
{
return null;
}
}
//Kopieren eines Segments einschließlich seiner Unterobjekte
public void copy(StructObject child)
{
try
{
StructObject so= (StructObject) super.clone();
so.parent=(StructObject) child.clone();
//Objekt was kopiert werden soll als ClipObjekt speichern
setClipObject(so);
}catch (CloneNotSupportedException e){}
}
Was mach ich falsch?
Danke für jeden Tipp!
Tschau