在實現Serializable
接口時,在Java中,我們需要設置它的長度爲serialVersionUID
。關於Java的可序列化,需要澄清
是否有任何區別是否應該選擇默認或自動生成長?
什麼時候應該比另一個更受歡迎?
如果自動生成long選擇,是否應該在事件類中更改?換句話說,賦值給serialVersionUID的值是與當前的類結構以及在那裏聲明的字段和方法有關的嗎?
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 6749067740891125834L;
[什麼是serialVersionUID,爲什麼要使用它?](http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-它) – paulsm4
可能重複的[爲什麼生成long serialVersionUID而不是簡單的1L?](http://stackoverflow.com/questions/888335/why-generate-long-serialversionuid-instead-of-a-simple-1l) – Thilo
使用默認序列號的兩個缺點:1)依賴於編譯器和版本。如果您嘗試反序列化到不同的環境,自動編號可能會隨機「中斷」。 2)你得到那些惱人的警告:)只需使用「1L」和fugghedabouddit;) – paulsm4