Ich habe ein Objekt aus einer Klasse, die ich nicht ändern kann.Serialisieren Sie ein vorhandenes Java-Objekt mit zirkulären Abhängigkeiten
Das Objekt hat eine kreisförmige Abhängigkeit.
Ich möchte das Objekt serialisieren, aber ich habe keinen Zugriff auf Java-Quellcode, da es in einer Bibliothek ist.
In C++ konnte ich eine Unterklasse erstellen, die virtuellen Methoden überschreiben und dann ablegen, um das gewünschte Verhalten zu erhalten. In Java ist dies nicht möglich.
Welche Möglichkeiten habe ich neben dem Erstellen einer neuen POJO-Klasse und das Kopieren über jedes Feld von Hand?
Also das Objekt ist nicht 'Serializable' nehme ich an. –
Nein, es ist nicht ... –
Sie können Reflektion verwenden und alle Felder rekursiv kopieren, während Sie eine 'IdentityHashMap' zum Auflösen von Zyklen verwenden. Ich bin mir aber sicher, dass jemand es bereits getan hat: https://stackoverflow.com/a/5294224/581205 – maaartinus