重复What is a serialVersionUID and why should I use it?
立即使用Eclipse进行一些java工作。我的班级名称用黄色下划线标出。我可以抑制警告或只添加frickin序列号。
我不关心任何一种方式(或者我应该怎么做?),但这个序列号究竟是什么?
感谢
答案 0 :(得分:17)
它与Java序列化有关。
当类的字段发生更改时,您无法再反序列化该类的其他版本。如果您尝试,Java将抛出异常。
然而,有时候字段的变化并不重要,你想说“无论如何都要反序列化”。为此,您可以定义此序列号。现在Java将使用该数字而不是反射来决定您的类定义是否“不同”。
最后,你可以通过定义自己的序列化函数来解决所有这些问题,事实上很多支持者坚持认为你应该这样做。