一般來說,讓簡單的POJO Java類實現java.io.Serializable是一種最佳實踐嗎?即使在簡單的POJO Java類中實現java.io.Serializable也是一種最佳實踐?
6
A
回答
13
一般不會。約書亞布洛赫說到implement Serializable judiciously。他描述的缺點摘要:
- 後降低改變類實現的靈活性 - 序列化形式是類的API的一部分
- 使一些錯誤和安全漏洞更容易 - 攻擊者可以在訪問類的內部串行化的字節流增加了測試負擔 - 現在您必須測試序列化!
- 減負子類的作者 - 他們必須讓自己的子類序列化太
當然,有時你需要一個POJO實現Serializable接口,譬如說RMI,但如果需要的是不存在的,你的代碼將沒有它就更簡單和更安全。
4
只有當你需要能夠將它們串行化時。否則就是not worth the effort。
3
它更多地取決於需求。在Web應用程序的環境中,一些Web服務器(例如Tomcat 6)甚至需要序列化我們存儲在會話中的對象的類。
0
我已經做了一件事來解決序列化表單不向後兼容的事實(比如在一個正在運行的系統上動態地重載一個類時),就是將我想要保存的字段加載到一個hashmap中,然後序列化。這樣,即使缺少字段,我也可以始終反序列化數據。您可能需要提供缺失密鑰的默認值,但比拼湊字段順序要好。
相關問題
- 1. 在Hibernate POJO類中實現java.io.Serializable類
- 2. java中單實例類的最佳實踐是什麼?
- 3. java最佳實踐
- 4. 實現i18n使用java的最佳實踐是什麼?
- 5. Java EE SSO最佳實踐
- 6. 實現緩存的最佳實踐
- 7. 名單 - 最佳實踐/簡化
- 8. Java「用戶」類命名最佳實踐?
- 9. 在Java中實現Lucene搜索的最佳實踐
- 10. 在C#中爲一個類實現==操作符的最佳實踐是什麼?
- 11. 最佳實踐來實現在WPF
- 12. 在java中擴展實用程序類的最佳實踐
- 13. 最佳實踐
- 14. MVC實現/最佳實踐問題
- 15. 最佳實踐
- 16. 最佳實踐
- 17. Android:實現LocationManager的最佳實踐
- 18. Java列表最佳實踐
- 19. 最佳實踐
- 20. 最佳實踐
- 21. Java Connection Pooling最佳實踐?
- 22. 最佳實踐
- 23. 最佳實踐
- 24. 最佳實踐
- 25. PivotalTracker最佳實踐
- 26. 最佳實踐
- 27. 最佳實踐:多種形式
- 28. Kohana框架 - Ajax實現最佳實踐
- 29. 最佳實踐
- 30. 最佳實踐來實現回彈性