上篇记录了下 java序列化,这里记录下serialVersionUID生成,如果实现java.io.Serializable 的类没有显式的添加serialVersionUID,那么在修改类等信息后,将会造成反序列化失败问题,所以一定要显式的声明serialVersionUID。
生成单个serialVersionUID
安装GenerateSerialVersionUID插件
Settings -> Plugins -> 搜索到GenerateSerialVersionUID插件后进行安装
Alt+Insert 找到SerialVersionUID。在当前类中添加一个serialVersionUID字段,或者如果已经存在则对其进行更新。

Alt+Insert 找到 SerialVersionUID
开启 Serializable issues
打开 IDEA Settings 搜索 Serializable class without serialVersionUID 进行勾选,保存设置,然后找到实现了Serializable并未添加serialVersionUID的类,可以看到,类名出线黄色警告,使用 Alt+Enter 生成 serialVersionUID

勾选Serializable class without serialVersionUID

image.png

image.png
批量生成 serialVersionUID
一个一个去项目找肯定是太麻烦了,那就得批量处理,开启 Serializable issues 后,在顶部菜单栏找打Analyze -> Inspect Code 进行代码分析,在结果中找到Java -> Serialization issues -> Serializable class without serialVersionUID 执行 Add 'serialVersionUID' field

Inspect Code

Java -> Serialization issues -> Serializable class without 执行 Add 'serialVersionUID' field