列出序列化数据中的serialVersionUID

时间:2009-02-24 10:30:39

标签: java serialization

我有一个包含序列化Java类的文件。我想解析这个文件,以获取文件中的类列表和每个类的serialVersionUID。

是否有人可以推荐这样做的工具,或者有人可以提供一些关于我应该从哪里开始实现这一目标的指示?

干杯

2 个答案:

答案 0 :(得分:2)

我不知道是否已有这样的工具(如果您可以自己访问这些类,serialver工具可以告诉您ID),但如果您需要自己动手, Sun的serialzation spec应该包含您需要的所有信息 - 具体来说,grammar of the stream format

答案 1 :(得分:1)

不幸的是,并非所有类(即使在JDK中)都遵守序列化规范。特别是readObject并不总是调用defaultReadObjectreadFields,而writeObject中存在同等错误。

您可以在反序列化时检测正在使用的类。 ObjectInputStream使用resolveClassresolveProxyClass将类描述符映射到实际的Class es(一些子类是不同的类加载器查找规则)。