java - 对象如何在序列化时存储静态值 serialVersionID 并在反序列化时对其进行验证?

标签 java

当对象被序列化时,它不存储对象的静态和 transient 。那么反序列化时如何验证serialVersionUID的静态值呢?至于反序列化时的验证,对象和类都必须存储序列版本引用。 但是,对象在序列化时不存储静态和 transient 值,因此它如何验证?

最佳答案

当对象被序列化时,首先它的的描述符被序列化(仅一次),并且该描述符包含serialVersionUID。它不作为对象静态状态的一部分传输。

参见 newClassDesc in the Object Serialization Specification, Object Serialization Stream Protocol chapter .

As for verification while deserialization, an object and the class, both will have to store the serial version reference

不,他们不会。我不知道这是什么意思。

关于java - 对象如何在序列化时存储静态值 serialVersionID 并在反序列化时对其进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691313/

相关文章:

java - JAXB 将嵌套元素解码为空

java - 编写一个方法,该方法将接受 24 小时格式的时间 (1430) 并返回 12 小时格式的时间 (2 :30pm)

java - 我可以创建包含数组的类的对象吗?

java - H2数据库备份恢复序列已存在异常

java - 普通旧 Java 对象 (POJO) 是什么意思?

java - Powermock withArguments 调用变量输入

java - 在 Android 上创建 PKCS10CertificationRequest

Java+MySQL : Read Date as String

Java hibernate 。如何使用条件获取日期字段最早的实体?

java - 可以使用转义序列打印 Java 变量吗?