我有一个包含序列化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