2009-02-24 50 views
1

我有一個包含序列化Java類的文件。我想解析這個文件以獲得文件中的類列表和每個類的serialVersionUID。在序列化數據中列出serialVersionUID

是否有任何人可以推薦這樣做的工具,或者有人可以提供一些關於我應該從哪裏開始實現這一目標的指針?

乾杯

豐富

回答

1

不幸的是,並非所有類(即使在JDK中)都遵守序列化規範。特別是readObject並不總是調用defaultReadObjectreadFields,與writeObject中的等效錯誤。

您可以檢測哪些類正在使用,而反序列化。 ObjectInputStream使用resolveClassresolveProxyClass將類描述符映射到實際的Class es(某些子類用於加載器查找的不同規則)。

+0

謝謝,我已經對我的ObjectInputStream進行了分類並將請求記錄到了您確定的兩個方法。這給了我足夠的信息向前邁進。 – Rich 2009-02-24 12:08:17

2

我不知道是否已經存在這樣一個工具(如果你有機會到類本身,則serialver工具可以告訴你的ID),但是如果你需要推出自己的, 太陽的serialzation spec應該包含所有你需要的信息 - 具體來說,grammar of the stream format