我可能为此冒险。
在我看来,为新类明确指定serialVersionUID是不好的。考虑以下两种情况:在布局应更改的情况下不进行更改,在布局不更改的情况下进行更改。
几乎只在显式的情况下才会更改应更改的位置。在这种情况下,它会导致一些非常细微,难以发现的错误。特别是在开发期间,班级布局经常更改。但是,如果未明确指定,它将改变并且反序列化将大声中断,这很可能是通过清除存储库来解决的。
仅在隐式时才进行更改。这是罕见的情况,其中类的布局已更改,但我们仍然希望从旧的序列化Blob中反序列化。这很可能会在质量检查过程中捕获( 从5.2升级到5.2.1后出现奇怪的错误,请参见附加的堆栈跟踪 ),并且可以通过设置显式值来进行简单修复。
注释?
除了类布局更改之外,其他原因可能导致不应该更改它的时间-问题在于它取决于编译器实现。如果使用Eclipse进行调试,但是使用javac进行生产构建, 则 最终 可能会 得到两组不兼容的数据。