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