1 简介
在JDK中是一个预定义注解,指定类的序列化版本号。可用来确保在反序列化时,序列化对象的版本号与反序列化对象的版本匹配,避免因版本不匹配而导致的反序列化失败。
2 案列
Java中当一个类被序列化,会自动生成一个序列化版本号(serialVersionUID),用于确定该类的序列化版本。
反序列化时,JVM会比较序列化对象、反序列化对象的serialVersionUID是否一致,不一致则抛InvalidClassException,因此,为避免这种异常,可用@Serial注解指定类的序列化版本号,以确保序列化对象和反序列化对象的版本一致。
import java.io.Serializable;
public class User implements Serializable {
@Serial // 指定序列化版本号
private static final long serialVersionUID = 1L;
private String name;
private int age;
// 构造函数、getter和setter方法省略
}上面例子中:@Serial注解被用来指定User类的序列化版本号,版本号为1L,这样,在序列化和反序列化User对象时,就会使用该版本号来确保序列化和反序列化对象的版本一致。
















