我看过关于这个主题的各种帖子,但他们没有帮助我。我删除了我的Netbeans缓存,并且未选中“保存时编译”。我只是尝试加载.dat文件并使用那里序列化的数据。它在JavaEditor中完美运行,但我在Netbeans中得到了错误 public static void load(){
ArrayList<Example> ex = new ArrayList<Example>();
FileInputStream fis;
ObjectInputStream ois;
try{
fis = new FileInputStream("ExampleList.dat");
ois = new ObjectInputStream (fis);
while (fis.available()>0){
Example exam = (Example)ois.readObject();
ex.add(exam);
}
ois.close();
fis.close();
} catch (Exception e){
System.out.println(e);
}
。
我用来加载.dat的代码:
package ExampleTest;
import java.io.*;
public class Example implements Serializable{
private String name;
public Example(){
}
//Getter and Setter
}
Example.jar:
Example ex = new Example();
在像ORA-29532 Java call terminated by uncaught java exception
这样的主要方法中做一些事情非常合适,所以netbeans应该找到这个类..
答案 0 :(得分:0)
它是一个class version compatibility
问题,这是因为您在尝试反序列化的序列化对象后对类进行了更改,因此新生成的serialVersionUID
不等于前一个1},
因此您必须声明static long serialVersionUID
,这样您就可以安全地对您的班级进行更改。
还要检查stackoverflow answer
希望有所帮助。