Eclipse 很好地为我生成了 serialVersionUID。但这似乎是被动代码生成,因为除非我再次生成,否则当我更改文件时 id 不会自动更新。
每次我更改内容时,是否有某种方法可以生成 serialVersionUID?“保存操作”似乎不包含这样的选项 - 有人找到了这样做的方法吗?
最好将它与 IDE 保存操作或类似的东西结合起来,这样我就可以在不影响序列化的情况下恢复更改。
最好的问候, Touko
编辑:@gustafc:这有两个要点:
- 如果我理解正确,不同的编译器最终可能会得到不同的 serialVersionUID 值
- 来自Serializable API:但是,强烈建议所有可序列化类显式声明 serialVersionUID 值,因为默认的 serialVersionUID 计算对类细节高度敏感,可能会因编译器实现而异,因此可能会在反序列化期间导致意外的 InvalidClassExceptions
- 我正在使用一种命令模式,比如在服务器上做事的对象。因此,即使对象内容没有改变,在客户端和服务器端的类内容不同的情况下也能很好地捕捉到。
- 但是再想一想,这可能不适用于自动生成的值,因为只有内容更改会改变它?所以,实际上我想要一个自动递增的serialVersionUID
这听起来合理吗?
Summa summarum,经过更多思考,在每次更改时自动递增的 serialVersionUID 会更好......