我有一个包含序列化Java类的文件。我想解析这个文件,以获取文件中的类列表和每个类的serialVersionUID。
是否有人可以推荐这样做的工具,或者有人可以提供一些关于我应该从哪里开始实现这一目标的指示?
干杯
富
答案 0 :(得分:2)
我不知道是否已有这样的工具(如果您可以自己访问这些类,serialver工具可以告诉您ID),但如果您需要自己动手, Sun的serialzation spec应该包含您需要的所有信息 - 具体来说,grammar of the stream format。
答案 1 :(得分:1)
不幸的是,并非所有类(即使在JDK中)都遵守序列化规范。特别是readObject
并不总是调用defaultReadObject
或readFields
,而writeObject
中存在同等错误。
您可以在反序列化时检测正在使用的类。 ObjectInputStream
使用resolveClass
和resolveProxyClass
将类描述符映射到实际的Class
es(一些子类是不同的类加载器查找规则)。