2009-02-24 63 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