使用瞬态字段序列化的异常

时间:2013-02-02 08:01:37

标签: java serialization

我有一些用于存储应用程序状态的类。我需要在文件中对文件进行序列化和反序列化。它没有问题。现在我为它添加了一个新的瞬态字段,而且,对于cource,我不会反复排序我的旧文件。我删除了这个新的瞬态字段,以便能够打开旧文件,但我不能再这样做了!我得到以下例外:

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

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

2 个答案:

答案 0 :(得分:2)

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

这样可以反序列化对象,只要该类仍然具有与序列化时完全相同的非瞬态字段(这可能不是真的,因为您从那时起引入或更改了serialVersionUID字段并忘记了关于它)。

答案 1 :(得分:0)

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