因此,对于编程练习,我必须将数据保存到文件中。我使用界面Serializable
来保存我的数据。
我反序列化文件时出现问题。当我打印反序列化的对象时,我可以看到已保存的所有值但是当我将此对象添加到arraylist并尝试再次显示此对象时,我的所有值都设置为default(定义到我的超类中)。
我不知道我的问题是否清楚,但如果您需要更多信息,请询问。
以下是我的代码的一部分:
public static void loadData(Mouse mouse, Monkey monkey, String fileName) throws IOException, ClassNotFoundException, FileNotFoundException{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName));
try{
Animal animal = (Animal)ois.readObject();
if (fileName == "Mice.ser"){
animal = (Mouse)animal;
mouse.setLists();
}
else{
animal = (Monkey)animal;
monkey.setLists();
}
}catch(Exception e){}
ois.close();
}
public class Mouse extends Animal implements Serializable{
protected List mouseG1 = new ArrayList();
protected List mouseG2 = new ArrayList();
public void setLists(){
if (this instanceof MouseG1){
mouseG1.add((MouseG1)this);
}
else{
mouseG2.add((MouseG2)this);
}
}
那是它,对不起我的英语(和代码)我是初学者(和法语)