Java反序列化导致默认值

时间:2017-02-15 18:04:37

标签: java serialization

因此,对于编程练习,我必须将数据保存到文件中。我使用界面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);
    }
}

那是它,对不起我的英语(和代码)我是初学者(和法语)

0 个答案:

没有答案