Java的序列化的机制通过判断serialVersionUID来验证版本的一致性。在反序列化的时候与本地的类的serialVersionUID进行比较,一致则可以进行反序列化,不一致则会抛出异常InvalidCastException。如果使用idea开发工具,在类实现java.io.Serializable接口时,如何自动自动生成serialVersionUID,下面就来介绍下
方法/步骤
-
新建一个测试的实体类Gradle,实现java.io.Serializable接口,选择类名,按Alt+Enter键,出现的提示框中没有生成serialVersionUID的提示,这个需要设置之后才会有自动生成的提示信息
-
打开File菜单,选择Settings选项,打开Settings设置对话框
-
左边树形目录,打开Editor》Inspections
-
在右边的搜索框中输入serialVersionUID关键字,出现以下选项,勾选"Serializable class without serialVersionUID"
-
光标放在类名上,再次按Alt+Enter键,这个时候可以看到"Add serialVersionUID field"提示信息
-
点击可以自动生成serialVersionUID
private static final long serialVersionUID = 2552429215424205489L;
END