Eclipse很好地为我生成serialVersionUID。但是这似乎是被动代码生成,因为除非我再次生成代码,否则在更改文件时id不会自动更新。Eclipse自动生成serialVersionUID,每次更改
是否有某种方法可以在每次更改内容时生成serialVersionUID? “保存操作”似乎没有包含这样的选项 - 有人找到了一种方法来做到这一点?
这将是很好,它可以结合IDE保存操作或类似的东西,这样我可以恢复更改,如果我这样做,不会影响序列化。
最好的问候, Touko
编辑:@gustafc:主要有两个点是:
- 如果我理解正确的,不同的编译器可以使用不同的值最终为的serialVersionUID
- 从Serializable API:但是,强烈建议所有可序列化类显式声明serialVersionUID值,因为默认serialVers ionUID计算是类的细节可能取决于编译器实现变化高度敏感,和反序列化
- 我使用的是一种像在服务器处事对象的命令模式的过程中可能因此导致意外InvalidClassExceptions。因此,即使对象内容没有改变,当客户端和服务器上的类内容不同时,也很好地捕捉到这些情况。
- 但是再想一想,这可能不适用于自动生成的值,因为只有内容更改才会改变它?所以,其实我想有一个自动递增的serialVersionUID
这听起来是合理的?
苏玛summarum,经过思考,在每个变化增加了自动递增的serialVersionUID甚至会更好......
你为什么要这样做?如果你没有指定一个,编译器会自动生成与Eclipse相同的'serialVersionUID'。指定一个'serialVersionUID'的整个观点是它*不应该改变,除非你做出重大改变(改变类层次结构或移除字段)。 – gustafc 2009-09-23 08:07:01
@gustafc:看到编辑 – Touko 2009-09-23 08:20:54