【发布时间】:2010-10-11 12:57:11
【问题描述】:
重复What is a serialVersionUID and why should I use it?
现在使用 Eclipse 进行一些 java 工作。我的班级名称带有黄色下划线。我可以取消警告,也可以只添加 frickin 序列号。
无论哪种方式我都不在乎(或者我应该?),但是这个序列号到底是什么?
谢谢
【问题讨论】:
重复What is a serialVersionUID and why should I use it?
现在使用 Eclipse 进行一些 java 工作。我的班级名称带有黄色下划线。我可以取消警告,也可以只添加 frickin 序列号。
无论哪种方式我都不在乎(或者我应该?),但是这个序列号到底是什么?
谢谢
【问题讨论】:
这与 Java 序列化有关。
当类的字段发生变化时,您不能再反序列化该类的其他版本。如果你尝试,Java 会抛出异常。
但是,有时字段的更改并不重要,您想说“无论如何都要反序列化”。为此,您需要定义此序列号。现在 Java 将使用该数字而不是反射来确定您的类定义是否“不同”。
最后,您可以通过定义自己的序列化函数来解决所有这些问题,而且确实许多倡导者坚持认为您应该这样做。
【讨论】: