HI!
Ich möchte gern meine Klasse (classes) in eine xml datei schreiben.
Hier mein Code, vielleicht findet ihr ja einen Fehler, bei mir schreibt er nur die ersten 4 zeilen in die xml datei.. folgende:
<?xml version="1.0" encoding="UTF-8" ?>
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
<object class="java.util.HashSet" />
</java>
Es geht jetzt nur um den Part, wo steht
case PERSISTENCE_SERIALIZE_XML:
this.transitiveClosure() gibt ein HashSet mit dem inhalt der kompletten klassen zurück, da classes noch unterclassn wie Person, Schüler, Lehrer und Direktor hat
EDIT: ich bekomm auch folgend meldung vom compiler...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.direktor
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(direktor);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
code:
Ich möchte gern meine Klasse (classes) in eine xml datei schreiben.
Hier mein Code, vielleicht findet ihr ja einen Fehler, bei mir schreibt er nur die ersten 4 zeilen in die xml datei.. folgende:
<?xml version="1.0" encoding="UTF-8" ?>
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
<object class="java.util.HashSet" />
</java>
Es geht jetzt nur um den Part, wo steht
case PERSISTENCE_SERIALIZE_XML:
this.transitiveClosure() gibt ein HashSet mit dem inhalt der kompletten klassen zurück, da classes noch unterclassn wie Person, Schüler, Lehrer und Direktor hat
EDIT: ich bekomm auch folgend meldung vom compiler...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.direktor
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(direktor);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
code:
Code:
/* writes data to a file */
public boolean write(String filename) throws IOException{
boolean success = true;
switch (pt){
case PERSISTENCE_SERIALIZE:
try{
FileOutputStream file = new FileOutputStream(filename);
ObjectOutputStream o = new ObjectOutputStream(file);
o.writeObject(this.transitiveClosure());
o.close();
} catch(IOException e) {
success = false;
System.err.println(e);
}
break;
case PERSISTENCE_SERIALIZE_XML:
try{
FileOutputStream filex = new FileOutputStream(filename);
XMLEncoder o = new XMLEncoder(filex);
o.writeObject(this.transitiveClosure());
o.close();
} catch (IOException e) {
success = false;
System.err.println(e);
}
break;
}
return success;
}