“如何修复”;java.io.InvalidClassException local class Compatible“不兼容”;错误?
我正在尝试做一个记事本应用程序,我正在跟踪,当我试图编译它时,它显示了这个错误“如何修复”;java.io.InvalidClassException local class Compatible“不兼容”;错误?,java,serialization,deserialization,Java,Serialization,Deserialization,我正在尝试做一个记事本应用程序,我正在跟踪,当我试图编译它时,它显示了这个错误 System.err: java.io.InvalidClassException: com.example.note.Note; local class incompatible: stream classdesc serialVersionUID = 2205386845645338430, local class serialVersionUID = -8697044096579308546 错误显示,在这个
System.err: java.io.InvalidClassException: com.example.note.Note; local class incompatible: stream classdesc serialVersionUID = 2205386845645338430, local class serialVersionUID = -8697044096579308546
错误显示,在这个函数中,当您运行应用程序时,它将显示您在应用程序存在之前保存的注释
public static ArrayList<Note> getAllSavedNotes(Context context) {
ArrayList<Note> notes = new ArrayList<>();
File filesDir = context.getFilesDir();
ArrayList<String> noteFiles = new ArrayList<>();
for(String file : filesDir.list()) {
if(file.endsWith(FILE_EXTENSION)) {
noteFiles.add(file);
}
}
FileInputStream fis;
ObjectInputStream ois;
for (int i = 0; i < noteFiles.size(); i++) {
try{
fis = context.openFileInput(noteFiles.get(i));
ois = new ObjectInputStream(fis);
System.out.println(i);
notes.add((Note) ois.readObject());
fis.close();
ois.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
return null;
}
}
return notes;
}
publicstaticarraylistgetallsavednotes(上下文){
ArrayList notes=新的ArrayList();
File filesDir=context.getFilesDir();
ArrayList noteFiles=新的ArrayList();
对于(字符串文件:filesDir.list()){
if(file.endsWith(文件扩展名)){
添加(文件);
}
}
文件输入流fis;
目的输入流ois;
对于(int i=0;i
有人能帮我修复这个错误吗?您需要让进行序列化的类使用与反序列化类相同的Notes版本。一个使用较旧的版本,另一个使用较新的版本。您能显示Notes类吗?您是否在其中定义了明确的serialVersionUID?@tentacle否我没有定义serialVersionUID,我只是按照教程添加serialVersionUID。序列化类和反序列化类应该是相同的。您提供的异常清楚地表明这就是问题所在。@attacle它显示了相同的错误