什么是串行版本ID?

时间:2009-03-05 15:09:46

标签: java eclipse

重复What is a serialVersionUID and why should I use it?

立即使用Eclipse进行一些java工作。我的班级名称用黄色下划线标出。我可以抑制警告或只添加frickin序列号。

我不关心任何一种方式(或者我应该怎么做?),但这个序列号究竟是什么?

感谢

1 个答案:

答案 0 :(得分:17)

它与Java序列化有关。

当类的字段发生更改时,您无法再反序列化该类的其他版本。如果您尝试,Java将抛出异常。

然而,有时候字段的变化并不重要,你想说“无论如何都要反序列化”。为此,您可以定义此序列号。现在Java将使用该数字而不是反射来决定您的类定义是否“不同”。

最后,你可以通过定义自己的序列化函数来解决所有这些问题,事实上很多支持者坚持认为你应该这样做。