gpt4 book ai didi

java - 当类发生更改时,从文件加载序列化类(Java/Android)

转载 作者:行者123 更新时间:2023-12-02 05:31:24 25 4
gpt4 key购买 nike

我找到了许多关于如何将序列化类写入/读取文件的答案,并已成功将其实现到我的 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;

只要保持 serialVersionUID 的值相同即可。文档 here对于安卓,here对于普通 Java。

关于java - 当类发生更改时,从文件加载序列化类(Java/Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25501941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com