我编写了一个程序,将对象(比如 A)存储为文件(比如 F)。因此,当您稍后运行程序时,您可以加载它并使用它的内容。到目前为止,一切都很好。但是今天我决定对 A 类进行一些更改。我做了一个备份(称为 Aold)。但我意识到为时已晚的是,存储在 F 上的信息对我来说非常有价值。当然,当我尝试将其作为新对象 A 加载时,它失败了。接下来我写了一个转换器,它将一个带有 Aold 对象的文件作为其内容并将其转换为一个新的 A 类(我还在吗?)然后将它写回磁盘。这样,下次我的程序就可以直接加载了。我再次将 oldA 重命名为 A。
但是恐怖。惊恐的事件。当我尝试从磁盘加载和 A 对象时出现此异常:
java.io.InvalidClassException:模型.A;本地类不兼容:流classdesc serialVersionUID = -4621085703760431015,本地类serialVersionUID = -3183461156231139807
我只是搞砸了,信息丢失了吗?或者有解决办法吗?