我有一個包含序列化Java類的文件。我想解析這個文件以獲得文件中的類列表和每個類的serialVersionUID。在序列化數據中列出serialVersionUID
是否有任何人可以推薦這樣做的工具,或者有人可以提供一些關於我應該從哪裏開始實現這一目標的指針?
乾杯
豐富
我有一個包含序列化Java類的文件。我想解析這個文件以獲得文件中的類列表和每個類的serialVersionUID。在序列化數據中列出serialVersionUID
是否有任何人可以推薦這樣做的工具,或者有人可以提供一些關於我應該從哪裏開始實現這一目標的指針?
乾杯
豐富
不幸的是,並非所有類(即使在JDK中)都遵守序列化規範。特別是readObject
並不總是調用defaultReadObject
或readFields
,與writeObject
中的等效錯誤。
您可以檢測哪些類正在使用,而反序列化。 ObjectInputStream
使用resolveClass
和resolveProxyClass
將類描述符映射到實際的Class
es(某些子類用於加載器查找的不同規則)。
我不知道是否已經存在這樣一個工具(如果你有機會到類本身,則serialver工具可以告訴你的ID),但是如果你需要推出自己的, 太陽的serialzation spec應該包含所有你需要的信息 - 具體來說,grammar of the stream format。
謝謝,我已經對我的ObjectInputStream進行了分類並將請求記錄到了您確定的兩個方法。這給了我足夠的信息向前邁進。 – Rich 2009-02-24 12:08:17