Eclipse很好地爲我生成serialVersionUID。但是這似乎是被動代碼生成,因爲除非我再次生成代碼,否則在更改文件時id不會自動更新。Eclipse自動生成serialVersionUID,每次更改
是否有某種方法可以在每次更改內容時生成serialVersionUID? 「保存操作」似乎沒有包含這樣的選項 - 有人找到了一種方法來做到這一點?
這將是很好,它可以結合IDE保存操作或類似的東西,這樣我可以恢復更改,如果我這樣做,不會影響序列化。
最好的問候, Touko
編輯:@gustafc:主要有兩個點是:
- 如果我理解正確的,不同的編譯器可以使用不同的值最終爲的serialVersionUID
- 從Serializable API:但是,強烈建議所有可序列化類顯式聲明serialVersionUID值,因爲默認serialVers ionUID計算是類的細節可能取決於編譯器實現變化高度敏感,和反序列化
- 我使用的是一種像在服務器處事對象的命令模式的過程中可能因此導致意外InvalidClassExceptions。因此,即使對象內容沒有改變,當客戶端和服務器上的類內容不同時,也很好地捕捉到這些情況。
- 但是再想一想,這可能不適用於自動生成的值,因爲只有內容更改纔會改變它?所以,其實我想有一個自動遞增的serialVersionUID
這聽起來是合理的?
蘇瑪summarum,經過思考,在每個變化增加了自動遞增的serialVersionUID甚至會更好......
你爲什麼要這樣做?如果你沒有指定一個,編譯器會自動生成與Eclipse相同的'serialVersionUID'。指定一個'serialVersionUID'的整個觀點是它*不應該改變,除非你做出重大改變(改變類層次結構或移除字段)。 – gustafc 2009-09-23 08:07:01
@gustafc:看到編輯 – Touko 2009-09-23 08:20:54