【问题标题】:List serialVersionUIDs in serialized data列出序列化数据中的 serialVersionUID
【发布时间】:2009-02-24 10:30:38
【问题描述】:

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

是否有任何人可以推荐的工具来执行此操作,或者也许有人可以提供一些关于我应该从哪里开始自己完成此操作的指示?

干杯

丰富

【问题讨论】:

    标签: java serialization


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢,我已经对我的 ObjectInputStream 进行了子类化,并将请求记录到您确定的两种方法中。这为我提供了足够的信息来继续前进。
      猜你喜欢
      • 2015-04-21
      • 2017-07-29
      • 1970-01-01
      • 2017-07-15
      • 2010-11-22
      • 1970-01-01
      • 2012-12-04
      • 2015-06-19
      • 1970-01-01
      相关资源
      最近更新 更多