generate serialVersionUID
idea是关闭了继承了java.io.serializable的类生成serialVersionUID的警告。如
1、Setting-inspections-serialization issues,serialzable class without "serialVersionUID"打勾;
2、将光标放到类名上,ATL+ENTER生成serialVersionUID
作用:
当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是:
- 无法自动生成serialVersionUID.
而serialVersionUID
又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的serialVersionUID
来验证版本一致性的。在进行反序列化时,JVM 会把传来的字节流中的serialVersionUID
与本地相应实体(类)的serialVersionUID
进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
一般来说,定义serialVersionUID
的方式有两种,分别为:
- 采用默认的1L,具体为
private static final long serialVersionUID = 1L;
- 根据类名、接口名、成员方法及属性等来生成一个
64
位的哈希字段,例如private static final long serialVersionUID = XXXL;
而 Java 类进行序列化也两个主要目的,分别为:
- 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
- 在网络上传送对象的字节序列。