我需要將serialVersionUID
放在Serializable
課程的祖先上嗎?或者只是在Serializable
課堂本身?我是否需要在Serializable類的祖先上放置serialVersionUID?
回答
根本不需要放置serialVersionUID。
Java將自動確定基於字段,方法等,爲你的類適當的序列ID
唯一適當的時候有serialVersionUIDs是當你將存儲你的對象到一個文件中,將需要加載他們以後,甚至在你改變你的代碼之後。
或者,如果您將通過使用不同版本的庫的組件之間的數據傳輸數據。
90%的人需要序列化的時間,它是實時的,並保證雙方的庫版本匹配。在這些情況下,如果您有兩個不兼容的庫版本,但沒有更改sID,則無需設置serialVersionUID,實際上可能會導致問題。由於Java認爲它們是串行兼容的,實際上,它們不會是奇怪的錯誤。
這些問題,看看還有:
Is there a reason to use a real serialVersionUID?
Why generate long serialVersionUID instead of a simple 1L?
What is a serialVersionUID and why should I use it?
編輯補充:
至於原來的問題,沒有你不需要擔心你的祖先。只要serialVersionUID會告訴Java它是否兼容。
但是,如果祖先改變了,並且你的serialVersionUID沒有改變,即使你是這麼說的,它可能不兼容。你不應該設置它的另一個原因。
我想你錯過了這個問題的關鍵。這不是關於你是否應該使用'serialVersionUID',但如果你*使用它,那麼它是否應該在超類和子類中使用? – skaffman 2011-05-10 21:41:36
那麼,他確實問過,我引用,「或者只是在Serializable類本身?」他的前提是錯誤的,因爲多年來傳遞了許多不良信息,所以我正在糾正它。 – 2011-05-10 21:44:13
如果你沒有注意到,你最後一個鏈接中被接受的和最高票數的答案實際上與你的答案相反。它建議(實際可串行化的javadoc),你總是聲明一個。第一和第二個鏈接是一個不同但相關的問題。 – Robin 2011-05-10 21:56:27
- 1. 用於Serializable的SerialVersionUID
- 2. serialVersionUID的值是否重要?
- 3. 如何爲Serializable生成serialVersionUID?
- 4. 爲什麼serialVersionUID的類型爲Serializable類的long類型
- 5. Sass祖先類
- 6. 在方法內設置類屬性時,是否需要釋放?
- 7. 如何檢查是否祖先是在他的祖先類型的最後一個元素
- 8. 我什麼時候需要更改serialVersionUID?
- 9. java serialVersionUID不工作,因爲我需要
- 10. 我們是否需要在App Server上有一個BO類的<Serializable()>屬性?
- 11. 我是否需要釋放UITouch對象?
- 12. 我是否需要釋放此對象?
- 13. 我應該把用戶放在祖先路徑還是分開?
- 14. 我需要一個XSL轉換,從一個祖先
- 15. 在實現Serializable的類上使用serialVersionUID和@SuppressWarnings(「serial」)有什麼優缺點?
- 16. 做無情的祖先查詢總是先返回祖先嗎?
- 17. 添加到SqlException.Data集合的對象是否需要[Serializable]?
- 18. 是否需要[Serializable]重用WCF下引用的程序集中的類型?
- 19. 祖先是否自動「放入」數據存儲?
- 20. 在Ruby中,是否可以將模塊移到祖先鏈上?
- 21. 是我的祖先之一顯示:無?
- 22. 如果我更改Java Exception類擴展的基類,是否需要更新serialVersionUID值?
- 23. 我們是否還需要「放置新」和「新操作員」?
- 24. C#XmlNode的祖先類型
- 25. 找出對象是否具有特定的類作爲祖先
- 26. 我是否還需要在子類方法上指定虛擬?
- 27. 爲什麼你需要,如果你擴展其實現Serializable「倒行」一類的重新定義的serialVersionUID?
- 28. 我是否需要設置約束?
- 29. 我是否需要處置任務?
- 30. WordPress的菜單祖先沒有給祖先類
層次結構中的每個類都需要它。 – bestsss 2011-05-10 21:32:46
@skaffman @bestsss只有Serializable類需要它,而不是任何不可序列化的祖先。 – EJP 2011-05-12 00:38:37