Java-Objekte in Java-Code serialisieren

9

Kennt jemand eine Java-Bibliothek, die eine Java-Objekthierarchie in Java-Code serialisiert, der diese Objekthierarchie generiert? Wie bei der Objekt / XML-Serialisierung, nur das Ausgabeformat ist nicht binär / XML, sondern Java-Code.

    
user17456 18.09.2008, 09:31
quelle

4 Antworten

1

Mir sind keine Bibliotheken bekannt, die dies sofort machen, aber Sie sollten in der Lage sein, eines der vielen Objekte in XML-Serialisierungsbibliotheken zu übernehmen und den Backend-Code anzupassen, um Java zu generieren. Wäre wahrscheinlich nicht viel Code.

Zum Beispiel eine schnelle Google aufgetaucht XStream . Ich habe es nie benutzt, aber scheint andere Backends als XML zu unterstützen - z. JSON. Sie können Ihren eigenen Writer implementieren und einfach den Java-Code schreiben, der zum Nachbilden der Hierarchie benötigt wird.

Ich bin mir sicher, dass Sie das gleiche mit anderen Bibliotheken tun könnten, insbesondere wenn Sie sich in einen SAX-Event-Stream einklinken können.

Siehe: HierarchicalStreamWriter

    
Simon Collins 18.09.2008, 09:44
quelle
3

Serialisierte Daten repräsentieren die internen Daten von Objekten. Es gibt nicht genügend Informationen, um herauszufinden, mit welchen Methoden die Objekte aufgerufen werden müssen, um den internen Status zu reproduzieren.

Es gibt zwei offensichtliche Ansätze:

  • Kodieren Sie die serialisierten Daten in einem literalen String und deserialisieren Sie das.
  • Verwenden Sie java.beans XML-Persistenz, die einfach genug sein sollte, um mit Ihrer bevorzugten XML- & gt; Java-Quelltechnik zu arbeiten.
Tom Hawtin - tackline 18.09.2008 09:43
quelle
1

Gute Frage. Ich habe über das Serialisieren von Objekten in Java-Code nachgedacht, um das Testen zu vereinfachen. Der Anwendungsfall wäre, einige Daten in eine Datenbank zu laden, dann den Code zu erzeugen, der ein Objekt erzeugt, und diesen Code später in Testmethoden zu verwenden, um Daten zu initialisieren, ohne auf die Datenbank zugreifen zu müssen.

Es ist irgendwie wahr, dass der Objektstatus nicht genug Informationen enthält, um zu wissen, wie er erstellt und transformiert wurde. Für einfache Java-Beans gibt es jedoch keinen Grund, warum dies nicht möglich sein sollte.

Möchten Sie eine kleine Bibliothek für diesen Zweck schreiben? Ich werde bald anfangen zu programmieren!

    
paweloque 16.11.2009 14:48
quelle
0

XStream ist eine Serialisierungsbibliothek, die ich für die Serialisierung nach XML verwendet habe. Es sollte möglich und ziemlich einfach sein, es so zu erweitern, dass es Java-Code schreibt.

    
Roman Plášil 18.09.2008 09:40
quelle

Tags und Links