1

我有一些用于存储应用程序状态的类。我需要在文件中/从文件中序列化和反序列化它。它没有问题。现在我向它添加了一个新的瞬态字段,当然,我不会反序列化我的旧文件。我删除了这个新的瞬态字段,以便能够打开旧文件,但我不能再这样做了!我得到以下异常:

com.qqer.fuzzy.app.ApplicationCurrentState;本地类不兼容:流classdesc serialVersionUID = 6313827182653283573,本地类serialVersionUID = 1

我该如何解决?我以为我可以删除所有新字段,一切都会好起来的。

4

2 回答 2

2

将您的 serialVersionUID 静态字段的值从 1 更改为 6313827182653283573,因为这是您序列化对象时的值。

这将使反序列化对象成为可能,前提是该类仍然具有与序列化它时完全相同的非瞬态字段(这不可能是真的,因为您从那时起引入或更改了 serialVersionUID 字段并忘记了它) .

于 2013-02-02T08:05:41.407 回答
0

您将帮助 serialver为所有旧课程设置新版本,一切都会好起来的

于 2013-02-02T08:04:43.190 回答