我正在尋找一種工具,它可以告訴我一個類/對象是否是合法的可序列化對象(實現可序列化,並且它的所有字段都是可序列化的)。 我知道我可以知道一個對象是否只能在運行時序列化。 我想在編譯時得到警告,一個類是否可以不可序列化(例如 - 一個成員不可序列化,儘管在運行時它可以是空的,或者是可序列化的子類類型)。此外,在運行時我想檢查一個類是否真正可序列化,然後嘗試通過網絡作爲序列化對象發送它。序列化檢查 - 編譯時間和運行時間
謝謝...
我正在尋找一種工具,它可以告訴我一個類/對象是否是合法的可序列化對象(實現可序列化,並且它的所有字段都是可序列化的)。 我知道我可以知道一個對象是否只能在運行時序列化。 我想在編譯時得到警告,一個類是否可以不可序列化(例如 - 一個成員不可序列化,儘管在運行時它可以是空的,或者是可序列化的子類類型)。此外,在運行時我想檢查一個類是否真正可序列化,然後嘗試通過網絡作爲序列化對象發送它。序列化檢查 - 編譯時間和運行時間
謝謝...
這通常是使用靜態代碼分析完成的。
使用了很多的工具是Findbugs。它會告訴你許多常見問題和可疑行爲。其中一張支票是您提到的那張(described here)。
對於大多數IDE來說都有插件,所以它可以在你工作的時候完成它的工作,而一種常見的模式是將它包含在自動構建中。
是否需要編譯時間?我之前使用單元測試完成了這個任務,這與開發生命週期的編譯時間非常接近。 This article有點過時,但概述了一些很好的方法。我們還通過使用兩個Web服務器對我們的Web應用程序進行真正的故障轉移測試來捕獲非可串行化狀態,這就是爲什麼我需要驗證可串行性。
你忘了附加鏈接到「這篇文章」 – AlexR
@AlexR - 我發佈後約15秒修復它,你很快! – jkraybill