2013-01-16 56 views
0

我有一些代碼,由不在我公司的人編寫。他在代碼中的不少地方使用了Serialization(實現Serializable),我認爲這是不必要的。當您看到序列化的Java對象時,您應該想到什麼

在從代碼中刪除這些序列化之前,應該注意哪些預防措施?

EDIT - 增加了下面

1)我們的代碼不通過網絡訪問。不需要流式傳輸。也沒有Servlets。
2)任何對象到字節陣列轉換髮生的任何地方
3)它僅僅是在一個單一的JVM
4)它只是讀取文件,並把該數據在數據庫中運行的獨立應用程序。數據庫可能是遠程的。
5)沒有任何RMI/CORBA組件
6)這些類的任何已知父是序列化

要照顧其他情況下?

+1

那麼,你爲什麼認爲他們是不必要的? – Perception

+0

如果這個類是正在寫入流的任何類的字段 –

+1

我認爲這個問題可能在更適合該網站的awy中表達。 –

回答

2

我會試着離開他們,因爲如果不使用它們是相對無害的。 JDK中的很多類是Serializable,但它不是問題。

如果您已經檢查過這些課程從不Serializable您可以刪除此。如果這很容易測試,你可以這樣做。否則我不會冒這個險,只是不要在將來做。 (使類別Serializable不是)

1

請注意,有些庫需要類爲Serializable

因爲它沒有任何危害,我會把它留在代碼中。

2

在從代碼中刪除這些序列化之前,應該注意哪些預防措施。

確保您有一套完整的單元測試和系統測試可用...並使用版本控制。

你也可以在你的代碼庫中搜索使用ObjectStream類的代碼,但是這些用法可能隱藏在庫和框架代碼中。

我同意彼得。刪除implements Seralizable不太可能實現任何有價值的東西。 (至少......不是從你的經理的角度來看)。

相關問題