最新动态
修改serialVersionUID以解决InvalidClassException反序列化异常
2024-11-04 17:58

前言

开发过程中某个类并没有指定serialVersionUID,并且该类是通过序列化存储在数据库中的,并没有转换为json存储,就导致在该类添加新字段之后,原来的数据不能进行反序列化,提示反序列化异常。

修改serialVersionUID以解决InvalidClassException反序列化异常

复现过程

创建测试类
写入序列化对象到文件
修改serialVersionUID
忽略serialVersionUID读取类信息
编写新读取方法
测试新读取方法

此致便完成了忽略serialVersionUID不一致,导致无法反序列化读取的问题。

治本之法

上次解决方案只是忽略serialVersionUID不一致来读取,不过每次都要使用CompatibleInputStream来读取,便有些麻烦,其实我们可以在解析之后,再将其写入到文件或数据库中,这样便不用每次使用CompatibleInputStream来读取了。

修该旧序列化数据的serialVersionUID
测试
    以上就是本篇文章【修改serialVersionUID以解决InvalidClassException反序列化异常】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/397.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多