2008-10-20 40 views

回答

13

一般不會。約書亞布洛赫說到implement Serializable judiciously。他描述的缺點摘要:

  • 後降低改變類實現的靈活性 - 序列化形式是類的API的一部分
  • 使一些錯誤和安全漏洞更容易 - 攻擊者可以在訪問類的內部串行化的字節流增加了測試負擔 - 現在您必須測試序列化!
  • 減負子類的作者 - 他們必須讓自己的子類序列化太

當然,有時你需要一個POJO實現Serializable接口,譬如說RMI,但如果需要的是不存在的,你的代碼將沒有它就更簡單和更安全。

3

它更多地取決於需求。在Web應用程序的環境中,一些Web服務器(例如Tomcat 6)甚至需要序列化我們存儲在會話中的對象的類。

0

我已經做了一件事來解決序列化表單不向後兼容的事實(比如在一個正在運行的系統上動態地重載一個類時),就是將我想要保存的字段加載到一個hashmap中,然後序列化。這樣,即使缺少字段,我也可以始終反序列化數據。您可能需要提供缺失密鑰的默認值,但比拼湊字段順序要好。