什么是串行版本 ID?

2022-09-03 14:35:00

复制 什么是串行版本UID,我为什么要使用它?

现在使用 Eclipse 进行一些 Java 工作。我的班级名称用黄色下划线标出。我可以抑制警告,也可以只添加 frickin 串行 ID。

我不在乎这两种方式(或者我应该吗?),但是这个序列号到底是什么?

谢谢


答案 1

它与Java序列化有关。

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

但是,有时字段的更改并不重要,您想说“无论如何都要取消序列化”。为此,请定义此序列号。现在,Java将使用该数字而不是反射来决定您的类定义是否“不同”。

最后,您可以通过定义自己的序列化函数来绕过所有这些问题,事实上,许多倡导者坚持认为您应该这样做。


答案 2

推荐