local class incompatible异常解决

报错信息

java.io.InvalidClassException: xxx.xxx.xxx.xxx.xxx(类名); local class incompatible: stream classdesc serialVersionUID = -2229241455005882481(数字不同), local class serialVersionUID = -3552051822827161402(不同)

我在网上搜了一会说是序列化和反序列化的serialVersionUID啥的没有对于上,然后看了一会大概压根就没有看明白。

然后我就自己回去看了看代码,发现了一个致命的问题!

就是我在序列化对象之后,发现没有toString方法然后加了上去,然后再去反序列化。

我丢,这不报错才怪,这低级错误,我是找了半天没有发现和我一样情况所以发一下

你序列化对象之后,到你反序列化的时候你的对象是不能改变的!

然后重新试一下OK

同理,序列化的版本号与反序列化的版本号必须一致也是这个道理

private static final long serialVersionUID = 1;

你序列化的版本,以及对象类和版本号都必须和反序列化一致才不呢出错

经验分享 程序员 微信小程序 职场和发展