XMLEncoder und AbstractTableModel

Bender

Mitglied
Hallo,

ich habe folgendes Problem. Ich habe mehrere Klassen, die ich mit dem XMLEncoder speichern will.

Bei einfachen Klassen klappt es, nur habe ich auch einige Klassen die Models für JTables sind. Dabei wird mir immer nur eine xml-datei ohne Variableninhalt erstellt. Hinzu kommt bei diese Klasse, dass sie eine ArrayList enthält, wegen dem Model halt. Das habe ich auch in keiner anderen Klasse.

So sieht die KLasse aus:

Java:
public class TestKlasse extends AbstractTableModel implements Serializable{

private ArrayList<T> liste;
}

Kann mir vielleicht jemand sagen, wo das Problem liegt? Oder ob es nicht möglich ist?
 

Wildcard

Top Contributor
Die Klasse muss die Java Bean Conventions erfüllen um korrekt mit dem XMLEncoder serialisiert zu werden. IMO ist XMLEncoder keine sehr geschickte Wahl um Daten zu persistieren. Besser du verwendest ein XML Binding Framework wie EMF oder Jaxb.
 

Bender

Mitglied
Danke für den Tipp. XMLEncoder scheint wirklich nicht das richtige zu sein. Habe gestern auch noch XStream versucht, dass ist doch auch ein XML Binding Framework, wenn ich es richtig verstanden habe.

Dabei ergibt sich jetzt folgendes Problem. Speichern und Laden ist kein Problem. Nur mit jedem Speichervorgang wird die Datei 500kB größer, somit hab ich jetzt schon eine 20 MB Datei und ich habe bisher nur kleine Tests gemacht und sogut wie keine Daten in der Tabelle modifiziert oder hinzugefügt.

Gibt es da auch ne Möglichkeit, dass er nur die Daten Speichert und nicht das ganze Modell, das ist denke ich das Problem.
 

Wildcard

Top Contributor
XStream ist eine Objektserialisierung, kein Binding Framework. Wie gesagt, ich würde EMF, oder Jaxb verwenden. Lass dir Klassen generieren und dann hast du ein Datenmodell das du laden und speichern kannst. Sowas wie ein TableModel direkt serialisieren zu wollen ist keine gute Idee.
 

Ähnliche Java Themen

Neue Themen


Oben