Eclipse的自动生成的serialVersionUID与每一个变化(Eclipse auto-g

2019-07-19 03:49发布

Eclipse恰好产生的serialVersionUID我。 但是,这似乎是被动的代码生成的ID将不会被自动更改该文件,除非我再做的代更新。

有没有已经正在生成的serialVersionUID每次我改变内容的时间某种方式? “保存操作”似乎并不包括这样一种选择 - 已经有人发现了一些办法做到这一点?

这将是很好,它可以与IDE结合起来保存类似的动作或事情,这样我可以恢复的变化,如果我这样做,是不影响序列化。

最好的问候,Touko

编辑:@gustafc:这有两个要点:

  • 如果我理解正确的,不同的编译器可能最终会与不同的serialVersionUID值
    • 从序列化API : 但是,强烈建议所有可序列化类显式声明的serialVersionUID值,因为默认的serialVersionUID计算是类的细节可能取决于编译器实现变化高度敏感,并因此可能导致反序列化过程中意外InvalidClassExceptions
  • 我使用的是一种像在服务器处事对象的命令模式。 所以,即使对象的内容没有改变,这将是很好赶上情况下,当类含量在客户端和服务器不同。
    • 但在想着另一个时间,这wuoldn't可能与自动生成的值工作,因为只有内容的变化会改变这种状况? 所以,其实我想有一个自动递增的serialVersionUID

这听起来合理?

苏玛summarum,经过思考,在每个变化增加了自动递增的serialVersionUID甚至会更好......

Answer 1:

目前在Eclipse没有标准的功能做到这一点。



Answer 2:

你可以更新在构建时与串行版本的Ant任务的serialver 。



Answer 3:

该ID不会因为我改变了文件,除非我再做一次代自动更新。

据我所知默认serialVersionUID就是这一点-一个ID生成基于当前一类的“形状”。 所以,如果你想,当你改变什么生成您的ID - 只是离开它。

但是,如果你想改变serialVersionUID只是偶尔-只是改变它。 随机变更的id就行了。

随机数仅比连续的数字更好一点(如果你可以假设没有其他人做了相同的合格名称的类在您的环境),所以你甚至可能从开始serialVersionUID = 1和随意增加这个数字。



文章来源: Eclipse auto-generation of serialVersionUID with each change