【发布时间】:2009-02-24 10:30:38
【问题描述】:
我有一个包含序列化 Java 类的文件。我想解析这个文件以获得文件中的类列表和每个类的serialVersionUID。
是否有任何人可以推荐的工具来执行此操作,或者也许有人可以提供一些关于我应该从哪里开始自己完成此操作的指示?
干杯
丰富
【问题讨论】:
标签: java serialization
我有一个包含序列化 Java 类的文件。我想解析这个文件以获得文件中的类列表和每个类的serialVersionUID。
是否有任何人可以推荐的工具来执行此操作,或者也许有人可以提供一些关于我应该从哪里开始自己完成此操作的指示?
干杯
丰富
【问题讨论】:
标签: java serialization
我不知道是否已经有这样的工具(如果您可以访问类本身,serialver 工具可以告诉您 ID),但如果您需要自己滚动, Sun 的 serialzation spec 应该包含您需要的所有信息 - 特别是 grammar of the stream format。
【讨论】:
不幸的是,并非所有类(即使在 JDK 中)都遵守序列化规范。特别是readObject 并不总是调用defaultReadObject 或readFields,在writeObject 中出现等效错误。
您可以在反序列化时检测正在使用哪些类。 ObjectInputStream 使用 resolveClass 和 resolveProxyClass 将类描述符映射到实际的 Classes(某些子类为您提供不同的类加载器查找规则)。
【讨论】: