显式串行版本UID 被认为是有害的?
2022-09-01 19:03:59
在我看来,为新类显式指定串行VersionUID是不好的。考虑两种情况,即布局应该更改它时不更改它,并在不应该更改它时更改它。
在应该更改的时间不更改几乎仅在显式时才发生。在这种情况下,它会导致一些非常微妙,难以找到的错误。特别是在开发过程中,当类布局经常更改时。但是,如果没有显式指定它,它将发生变化,反序列化将大声中断,这很可能通过清除存储库来解决。
在不应该有的时候更改它几乎只会在它是隐式的时候发生。这是类布局已更改但仍希望从旧的序列化 blob 反序列化的罕见情况。这可能会在 QA 期间被捕获(从 5.2 升级到 5.2.1 后出现奇怪的错误,请参阅附加的堆栈跟踪),并且可以通过设置显式值来轻松修复。
评论?