IDEA自动生成序列化ID
作者:互联网
概述
通常我们在生成序列化对象时需要指定一个serialVersionUID。
为什么要设置序列化版本呢:
serialVersionUID字段表示类的序列化版本,用于反序列化时校验。如果反序列化时的类的serialVersionUID与序列化时不同,那么会抛出InvalidClassException异常。
必须是final和static修饰的,推荐使用private修饰,因为它不需要被继承使用,只在序列化和反序列化时使用。
ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
如果类中没有这个字段,那么在运行时jvm会帮忙计算一个值。推荐用户给每一个有序列化能力的类明确指定一个serialVersionUID 。因为默认的计算方式是严重依赖于编译器的实现,可能导致反序列化的时候抛出InvalidClassException异常。
数组类型不能明确指定serialVersionUID,所以它们使用默认的计算值,但是反序列化的时候不需要校验serialVersionUID。
自动生成序列化ID方法
File -> Settings -> Editor -> Inspections -> 搜索 Serialization issues ,找到 Serializable class without ‘serialVersionUID’ ->打上勾,Apply->OK
标签:IDEA,InvalidClassException,static,ID,序列化,final,serialVersionUID 来源: https://blog.csdn.net/tianzhonghaoqing/article/details/119190235