Serializable和serialVersionUID的作用
-
Serializable:序列化和反序列化的类要实现的接口,实现了Serializable接口,就表示这个类才可以序列化和反序列化。未实现Serializable接口,将对象序列化时会抛出异常。
-
serialVersionUID:序列化时根据serialVersionUID判断是否同一个对象。如果对象实现了Serializable序列化接口,但没有指定具体的serialVersionUID,则序列化类新增/删除属性时,反序列化可能会失败。serialVersionUID 不一致会抛出序列化运行时异常。因此序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。
idea让实现了Serializable的类提示生成serialVersionUID
我当前是jdk1.8。当使用 JDK 14 或更高版本的语言级别时,该快速修复还将添加 java.io.Serial 注解。
实现了Serializable的类会提示生成serialVersionUID
使用了idea翻译插件,对应的配置
实现了Serializable的类会提示生成serialVersionUID