什么是Java中的串行版本ID?

可能重复:
为什么我应该打扰serialVersionUID?
什么是串行版本ID?

当我在Eclipse中创建一个扩展java.util.logging.Level的新类时,它要求我添加一个默认或生成的序列版本ID。 我只是盲目添加,不知道它是什么,为什么我必须添加它。

任何人都可以告诉我它是什么以及为什么它是必需的。


在序列化和反序列化对象时使用串行版本ID。 Java会识别您想要反序列化的字节是否与本地类版本匹配。 如果没有,它会抛出异常。

这在执行RMI或持久化对象结构时很重要。

在Serializable的javadoc中有很好的关于序列化的描述。


它是该类的唯一标识符,用于序列化。

如果你正在序列化asap是明智的,因为如果你没有声明一个,那么当改变这个类时,它将会自动生成一个不同的序列并且序列化将停止工作。

这里有一个很好的参考:http://c2.com/ppr/wiki/JavaIdioms/AlwaysDeclareSerialVersionUid.html

链接地址: http://www.djcxy.com/p/23827.html

上一篇: What is Serial Version ID in Java?

下一篇: What are your (concrete) use