为什么SerialVersionUID是静态的

May*_*urB 6 java serialization

我正在阅读java.Java中的序列化说,静态变量没有使用object.serialVersionUID序列化是序列化过程中必须的.当一个对象被序列化时,serialVersionUID会与其他内容一起序列化.这是一般序列化规则的一个例外,即"静态字段未序列化"

任何人都可以告诉我为什么它是静态的.它可以是非静态的吗?

Red*_*ddy 6

因为一旦成功创建了Object,就可以访问任何对象变量/成员.您无法在不创建对象变量的情况下访问它 现在回过头来看,在反序列化期间,需要从数据中创建Object.如果无法检查对象是否可反序列化,则无法获取Object成员.

出于同样的原因,UID是静态的.