Hallo zusammen,
ich möchte gerne meine Objekte in eine XML-Datei schreiben (und lesen), ich bekomme jedoch immer die Meldung:
java.lang.InstantiationException: methoden.lager
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
Also, wieso geht das nicht so, wie ich möchte?
Und das Objekt lager ist einer Erweiterung von ersatzteile, kann java nicht anhand der übergebenen Variabeln das 'richtige' Objekt benutzen?
Ich habe mal meinen Code etwas gekürzte gepostet ...
ich möchte gerne meine Objekte in eine XML-Datei schreiben (und lesen), ich bekomme jedoch immer die Meldung:
java.lang.InstantiationException: methoden.lager
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
Also, wieso geht das nicht so, wie ich möchte?
Und das Objekt lager ist einer Erweiterung von ersatzteile, kann java nicht anhand der übergebenen Variabeln das 'richtige' Objekt benutzen?
Ich habe mal meinen Code etwas gekürzte gepostet ...
Code:
[...]
public class haupt {
[...]
public static void main(String[] args) {
lager[] ersatz_db;
ersatz_db = new lager[20];
ersatz_db[0] = new lager("dond3",45,"fs","sdfsf","sonfsdfsg67");
ersatz_db[1] = new lager("asda3",55,"ewr","werw","werewrwe");
ersatz_db[2] = new lager("tttt",55,"ewr","d "," d");
ersatz_db[3] = new lager("tttt",55,"ewr","d "," d");
serialize(ersatz_db);
}
[...]
static void serialize(lager[] db){
try{
XMLEncoder o = new XMLEncoder(new FileOutputStream("db.ser.xml"));
o.writeObject(db);
o.close();
}catch( IOException e){}
}
}
Code:
class ersatzteile {
String name ;
float preis ;
String hersteller;
public ersatzteile(String name, float preis, String hersteller) {
this.hersteller = hersteller;
this.name = name;
this.preis = preis;
}
public void print() {
System.out.println("Name: " + this.name+ "\nPreise: " + this.preis +
"\nHersteller: " + this.hersteller);
}
}
public class lager extends ersatzteile {
String Art_Nr;
String Lager_Nr;
public lager(String name, float preis, String hersteller, String Art_Nr,
String Lager_Nr) {
super(name, preis, hersteller);
this.Art_Nr = Art_Nr;
this.Lager_Nr = Lager_Nr;
}
public void print() {
System.out.print("Lager:\nName: ");
System.out.print(this.name);
System.out.print("\tPreis: ");
System.out.print(this.preis);
System.out.print("\tHersteller: ");
System.out.print(this.hersteller);
System.out.print("\tArt_Nr: ");
System.out.print(this.Art_Nr);
System.out.print("\tLager_Nr: ");
System.out.print(this.Lager_Nr);
}
}