1. ホーム

[解決済み] [Solved] なぜ単純な1Lではなく、長いserialVersionUIDを生成するのですか?

2022-04-08 05:22:22

質問

EclipseでクラスがSerializableを実装している場合、2つのオプションがあります。 serialVersionUID(1L) または生成された serialVersionUID(3567653491060394677L) . 私は前者の方がカッコイイと思うのですが、2番目のオプションを使っている人を何度も見かけました。を生成する理由はあるのでしょうか? long serialVersionUID ?

解決方法は?

私の知る限り、それは以前のリリースとの互換性のためだけでしょう。これは、以前にserialVersionUIDを使うのを怠っていた場合にのみ有効で、その後、本来はそうであるべきだと分かっている変更を行った場合に有効でしょう。 互換性 が、シリアライズが壊れる原因になっています。

を参照してください。 Java Serialization Spec を参照してください。