前言
开发过程中某个类并没有指定serialVersionUID,并且该类是通过序列化存储在数据库中的,并没有转换为json存储,就导致在该类添加新字段之后,原来的数据不能进行反序列化,提示反序列化异常。
复现过程
创建测试类
写入序列化对象到文件
修改serialVersionUID
忽略serialVersionUID读取类信息
编写新读取方法
测试新读取方法
此致便完成了忽略serialVersionUID不一致,导致无法反序列化读取的问题。
治本之法
上次解决方案只是忽略serialVersionUID不一致来读取,不过每次都要使用CompatibleInputStream来读取,便有些麻烦,其实我们可以在解析之后,再将其写入到文件或数据库中,这样便不用每次使用CompatibleInputStream来读取了。
修该旧序列化数据的serialVersionUID
测试
以上就是本篇文章【修改serialVersionUID以解决InvalidClassException反序列化异常】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/397.html
动态
相关文章
文章
同类文章
热门文章
栏目首页
网站地图
返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多