为什么序列化需要在实现的类中使用串行版UID?

dev*_*per 2 java serialization

为什么序列化需要在实现的类中使用串行版UID?

Gus*_*ind 8

来自以下文件java.ioSerializable:

序列化运行时将每个可序列化类与版本号相关联,称为serialVersionUID,在反序列化期间使用该版本号来验证序列化对象的发送方和接收方是否已加载与该序列化兼容的该对象的类.如果接收者已经加载了一个类,该类具有与相应发送者类的serialVersionUID不同的serialVersionUID,则反序列化将导致InvalidClassException.可序列化类可以通过声明名为"serialVersionUID"必须为static,final和long类型的字段来显式声明其自己的serialVersionUID