序列化。无法加载对象

时间:2017-12-19 11:00:54

标签: java serialization

我想加载我的类Floyd并使用它的方法FW,但Intellij write无法解析符号a。我在类Floyd

中写了“import.io *”和“implements Serializable”
    import java.io.*;

public class jj {
    public void smth() {

        Floyd fw = new Floyd();
        try {
            FileOutputStream fs = new FileOutputStream("Floyd.ser");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(fw);
            os.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }


        try{

            ObjectInputStream osNew = new ObjectInputStream(new FileInputStream("Floyd.ser"));
            Floyd a = (Floyd) osNew.readObject();
            osNew.close();
        } catch (Exception ex1){
            ex1.printStackTrace();
        }

        a.FW();
    }
}

1 个答案:

答案 0 :(得分:1)

在第二个try语句中移动a.FW()

try
{
     ObjectInputStream osNew = new ObjectInputStream(new FileInputStream("Floyd.ser"));
     Floyd a = (Floyd) osNew.readObject();
     a.FW()
     osNew.close();
} catch (Exception ex1){
     ex1.printStackTrace();
}

您已在try块内初始化变量,因此osNew的可见性不会超出try块,因此IDE与cannot resolve symbol a

密切相关