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;
你序列化的版本,以及对象类和版本号都必须和反序列化一致才不呢出错
上一篇:
微信小程序ssm电影院售票系统app
下一篇:
开发中常用的设计模式及设计原则