尝试从磁盘上的文件加载类时java.io.InvalidClassException

时间:2012-10-16 18:55:27

标签: java exception serialization

  

可能重复:
  Java serialization - java.io.InvalidClassException local class incompatible

我编写了一个程序,将Object(比如A)存储为文件(比方说F)。因此,当您稍后运行该程序时,您可以加载它并使用其内容。到现在为止还挺好。但是今天我决定对A类进行一些修改。我对原版进行了备份(称为Aold)。但我意识到太晚了,就是存储在F上的信息对我来说非常有价值。当然,当我试图将它作为新的对象A加载时,它失败了。接下来我写了一个转换器,它接受一个带有Aold对象的文件作为其内容并将其转换为一个新的A类(仍然与我?)然后将其写回磁盘。这样,下次我的程序可以直接加载它。我再次将oldA重命名为A.

但恐怖。惊恐的事件。当我尝试从磁盘加载一个对象时,我遇到了这个异常:

java.io.InvalidClassException:model.A;本地类不兼容:stream classdesc serialVersionUID = -4621085703760431015,本地类serialVersionUID = -3183461156231139807

我刚搞砸了,信息丢失了吗?或者有解决方案吗?

0 个答案:

没有答案