【发布时间】:2015-08-23 09:09:00
【问题描述】:
我有两个实现 Serializable 的 java 类。我将它们都设置为 1L 的 serialVersionUid。
一位同事说,所有类都必须有一个唯一的序列版本 uid,如果类具有相同的序列版本 uid,jvm 会将它们视为平等的。我认为相等是基于 equals 方法的结果,而不是序列版本 uid。
据我了解,串行版本 uid 用于指示类的版本,并且当类以不兼容的方式更改时,串行版本 uid 应递增。
正确吗?可以使用 1 的 serialversion uid 吗?或者java类不应该有1L的serialversion uid?
【问题讨论】:
-
区别在于我特别想知道1L是否是可接受的串行版本uid(而不是是否需要serialverionuid)。也许我的问题的另一种说法是“串行版本的 uid 是否需要是唯一的?”
-
您是否尝试过阅读这些答案?我向您保证,如果您阅读了该主题,您的问题将会得到解答。
-
好吧,与我一起工作的另一个人读到的答案表示 1L 不是允许的值,我读到它表明它是。
-
'和你一起工作的另一个人'正在做梦。那里没有说
1L是非法值。那里只有一个答案甚至提到了它。serialVersionUID是long,并且允许 任何 值。
标签: java serialization serialversionuid