0

您好,我有一个关于SerialVersionUIDJava 的问题。如果我生成一个SerialVersionUIDfor class A,则 2 个实例A具有相同的SerialVersionabout 类和另一个唯一的 Serial 对象,不同的 aboutobject1object2? 或者怎么做?不明白,请回复我。谢谢。

4

2 回答 2

1

SerialVersionUID 是识别类版本的方法。所以同一类的所有对象都将具有相同的 SerialVersionUID。但是,如果您更改类,建议更改 SerialVersionUID。然后在不兼容的情况下,对象的序列化将失败。

请参阅:什么是 serialVersionUID,我为什么要使用它?

于 2017-01-17T09:02:50.757 回答
0
  1. serialVersionUID 用于对象的版本控制。

  2. 如果我们没有在类中定义serialVersionUID,并且在类中进行了任何修改,那么我们将无法对我们的类进行反序列化,因为java编译器为修改后的类生成的serialVersionUID将与旧的序列化对象不同,反序列化过程将结束抛出 java.io.InvalidClassException

  3. 运行时的序列化与每个可序列化类关联一个版本号,称为 serialVersionUID,在反序列化期间使用该版本号来验证序列化对象的发送方和接收方是否已为该对象加载了与序列化兼容的类

serialVersionUID object1 和 object2?

它将是相同的,因为串行版本 uid 是静态的(即类级别)

于 2017-01-17T09:13:34.867 回答