如果我將一個類定義爲Serialiable,那麼當我創建一個子類時,它會要求我定義一個serialVersionUID。這是必要的嗎,還是我可以依賴超級課程中的那個?序列化和子類
Q
序列化和子類
3
A
回答
3
如果您更改類的實現,但仍希望能夠對以「舊」格式保存的對象進行序列化/反序列化,則使用SerialVersionUID。所以這意味着如果你想改變子類而不是超類,你必須在子類中實現它。但是,如果你不需要這個「版本控制」,你根本不需要使用SerialVersionUID。
4
我曾經在不同的(可能是一流的)一次的serialVersionUID聲明,如:
public static final long GlobalSerialVersionUID=0L;
然後在每個Serializable
類中聲明:
private static final long serialVersionUID = MyTopClass.GlobalSerialVersionUID;
這種做法將保證你將所有時間具有相同的SerialVersionUID,如果您將要在不同的序列化版本之間實現數據交換 - 您可以在不同的序列化版本之間分支代碼。
相關問題
- 1. XML序列化的子類
- 2. 反序列化JSON子類
- 3. 用csvHelper序列化子類
- 4. 如何序列化子類?
- 5. 子類是可序列化的超類不可序列化
- 6. 可序列化類的子類需要可序列化?
- 7. 將子類序列化爲子元素
- 8. JMS序列化程序不序列化子類
- 9. enum類和boost序列化
- 10. 使用超級類和子類進行序列化
- 11. 將XML序列化爲類,子類和屬性使子類不爲空
- 12. 使用子項序列化和反序列化ActiveRecord模型
- 13. 一個子類的GWT序列化
- 14. 如何停止子類的序列化?
- 15. JSON反序列化的子類
- 16. 反序列化XML到C#子類
- 17. 傑克遜反序列化與子類
- 18. 傑克遜子類序列化
- 19. 如何反序列化子類?
- 20. 子類是否序列化不可序列化的父類'成員?
- 21. 如果父類沒有實現可序列化,則序列化子類?
- 22. C#XML序列化陣列和多類
- 23. 收藏列表和子類初始化
- 24. 不可序列化父類的可串行化子類
- 25. 使用內部類進行子類化,僅序列化外部
- 26. GWT序列化 - 類沒有可實例化的子類型
- 27. 靜態類變量和序列化/反序列化
- 28. 序列化和反序列化包含類關鍵字
- 29. 用Jackson正確序列化和反序列化Java類
- 30. 序列化的BitmapImage和XMLSERIALIZE Silverlight的類反序列化
[爲什麼要打擾serialVersionUID?](http://stackoverflow.com/questions/285793/why-should-i-bother-about-serialversionuid/285809#285809) – 2011-04-05 08:22:40
http://stackoverflow.com/問題/ 285793/why-should-i-bother-about-serialversionuid – 2011-04-05 08:50:47