Serialisierung und Klonen in Java

Status
Nicht offen für weitere Antworten.

mmeyer1987

Mitglied
Moin,

Ich hänge an einem Problem, weiß aber nicht wie ich das lösen soll, ich versuch es mal zu beschreiben.

Wie kann ich ein Objekt einer Klasse, dessen Implementierung ich nicht kenne oder manipulieren kann, klonen?

Ich will eine lokale Kopie des Objektes in meiner Methode anlegen. Dieses schlägt aber fehl, weil komplexe Attribute des Objektes nicht serialisierbar sind, die Attribute sind nach dem Klonen alle <null>.

Wie geht man da am besten vor? ???:L Wie gesagt, kann ich die Klassen-Implementierung nicht ändern. :bahnhof:

Grüße,

mmeyer
 
Du könntest es über reflection lösen. Ist allerdings nicht gerade ellegant und performant.
 
Wie würde das denn so ungefähr aussehen? Es wäre auch nur eine Übergangslösung, bis das ganze mal ordentlicher aufgebaut wird. 😳
 
Du iterierst über alle Attribute des Objekts und kopierst den Wert in das entsprechende Attribut des neuen Objekts. Ist ein Attribut selbst ein Objekt, muss dieses natürlich rekursiv ebenfalls neu erzeugt und kopiert werden.

Alles in allem kann das aufwändig werden.
 
Uff, ja, verstehe ich! Danke dir für den Ansatz. Aber Recht hast du, das ist irgendwie nicht sauber und ziemlich aufwändig :autsch: Naja, ich schau mal... Danke dir!
 
Ich wage zu bezweifeln, dass es für diese Anforderung einen generischen Weg gibt. Evtl. gibt es eine Lösung (mit großem Aufwand), wenn du alle Objekte kennst. Auch dann musst du vorher sicherstellen können, dass von dieser Klasse theoretisch überhaupt eine Kopie existieren kann. Wovon sollte es z.B. keine Kopien geben? Singletons, Serversockets, ...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben