我可能为此冒险。

在我看来,为新类明确指定serialVersionUID是不好的。考虑以下两种情况:在布局应更改的情况下不进行更改,在布局不更改的情况下进行更改。

几乎只在显式的情况下才会更改应更改的位置。在这种情况下,它会导致一些非常细微,难以发现的错误。特别是在开发期间,类(class)布局经常更改。但是,如果未明确指定,它将更改并且反序列化将大声中断,这很可能是通过清除存储库来解决的。

仅在隐式时才进行更改。这是罕见的情况,其中类的布局已更改,但我们仍想从旧的序列化Blob中反序列化。这很可能会在质量检查过程中捕获(从5.2升级到5.2.1后出现奇怪的错误,请参阅附加的堆栈跟踪),并且可以通过设置显式值来进行简单修复。

评论?

最佳答案

除了类布局更改之外,其他原因可能导致不应该更改它的时间-问题在于它取决于编译器实现。如果使用Eclipse进行调试,但是使用javac进行生产构建,则最终可能会得到两组不兼容的数据。

09-11 22:31