Wie kopiert man Objekte?
-
Hi ich möchte ein Objekt kopieren also keine weitere Referenz auf das Objekt setzen sonder es kopieren wie geht das? Mit clone()? Hab das mit nem JFrame versucht aber es kommt ein Laufzeitfehler: cloneNotSupportedException
-
Nicht jedes Objekt kann geklont werden. JFrame zählt dazu Das zu klonende Objekt muss dem Interface Cloneable genügen.
-
hmm
und was mache ich nun? Irgendwie muss es doch möglich sein eine Kopie von meinem JFrame Objekt zu erstellen oder?
-
Du könntest dir ne eigene Frame Klasse basteln welches Cloneable ist und dann darauf clonen aber es hat natürlich seinen Sinn JFrame nicht cloneable zu machen. So ein Frame benutzt Parents und hat Grafik-Peers bei denen es nicht unbedingt sinnvoll ist sie zu klonen.
-
hi, mal ein kleines beispiel:
class MyClass implements Cloneable { public MyClass() { } public Object clone() { Cloneable theClone = new MyClass(); return theClone; } }
und dann:
MyClass myObject = new MyClass(); MyClass myObjectClone = (MyClass)myObject.clone();
hilft das?
gruß math55
-
Besser und effektiver ist es auf die übergeordnete Methode zurückzugreifen.
clone { Object o = null; try { o = super.clone(); } catch (CloneNotSupportedException ignore {} return o; }
Man sollte in einer Clone-Methode keinen Konstruktor aufrufen.
/Dirk
-
Wie erzeuge ich denn bitte einen Klon, ohne ihn zu Konstruieren?