我有一些用于存储应用程序状态的类。我需要在文件中对它进行序列化和反序列化。它没有问题。现在,我向其中添加了一个新的临时字段,当然,我不对我的旧文件进行反序列化。我删除了这个新的临时字段,以便能够打开旧文件,但是我再也做不到!我有以下异常:
com.qqer.fuzzy.app.ApplicationCurrentState;本地类不兼容:流classdesc serialVersionUID = 6313827182653283573,本地类serialVersionUID = 1
我该如何解决?我以为我可以删除所有新字段,就可以了。
最佳答案
将serialVersionUID静态字段的值从1更改为6313827182653283573,因为这是序列化对象时的值。
这将使反序列化该对象成为可能,前提是该类仍具有与序列化该对象时完全相同的非瞬态字段(这不可能成立,因为从那时起您引入或更改了serialVersionUID字段并忘记了它) 。