今天在图书馆看书的时候看到这个java序列化对象时候,会出现serialVersionUID,之前遇到的时候,不知道是为什么,今天碰巧遇到,就怕了下来。
private static final long serialVersionUID = -4509438322342833660L;
它代表了可序列化对象的版本,如果没有提供这个版本信息,刚实现Serializable接口的类会自动依类名称、实现的接口、成员等来产生,如果是自动产生的,则下次更改类的时候,自动产生的serialVersionUID也会跟着变更,从文件读回到对象时,若两个对象的serialVersionUID不相同,就会丢出
java.io.InvalidClassException
如果想要维持版本信息的一致,则要明确声明serialVersionUID。