我找到了许多关于如何将序列化类写入/读取文件的答案,并已成功将其实现到我的 Android 应用程序中,但是我在扩展应用程序的功能时遇到了问题。
例如,如果我有 carClass:
String make;
String model;
然后我将其保存到我的保存文件中,每当我加载它时,存储的值都可以:)
但是当我尝试扩展该类以包含其他内容(即颜色)时:
String make;
String model;
String color;
当应用加载文件时,它会尝试将对象转换为新类,并且由于加载的对象没有“颜色”,因此无法加载保存文件。
我该如何克服这个问题?目前,每次我向应用程序添加新内容时,用户的保存文件实际上都是无效的,他们必须重新开始,这不是一个好的用户体验!
最佳答案
在您的类中声明一个staticfinallongserialVersionUID
。这将使其向前/向后兼容,例如
String make;
String model;
private static final long serialVersionUID = 0L;
兼容
String make;
String model;
String color;
private static final long serialVersionUID = 0L;
关于java - 当类发生更改时,从文件加载序列化类(Java/Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25501941/