如何识别重写从文库的方法与ASM库?

问题描述

我使用ASM收集有关的类在Android项目的一些信息(使用gradle这个插件与谷歌联合变换API)。我想找到如果一个方法是压倒他的父类/接口的方法。如果超类或接口是该项目或本地依赖性(罐)的部分我可以比较所有超类/接口定义的方法的当前方法的描述符。这是通过遍历整个层次结构(自下而上)来完成。如果我发现描述符之间的匹配我找到的重写的方法

当我到达标准库(如 java.langandroid.app 等)中定义的超类/接口时,我的问题出现了,因为我不知道如何访问此类类。如果库类是在当前类路径我可以从ClassReader

直接访问

例如:

ClassReader classReader = new ClassReader("java.lang.Object");

但是,如果类不是在当前类路径我得到(当然)java.io.IOException: Class not found。例如,当我尝试:

ClassReader classReader = new ClassReader("android.app.Activity");

据我所知,比较两种方法的描述,是确定一个压倒一切其他的,所以我必须以某种方式访问​​超类/接口的唯一途径。

所以我的问题是: 的我怎样才能访问其在标准库中定义的类的超类/接口? (注意:不是 android 项目中的依赖项,我已经能够评估),或者是否有另一种方法来确定覆盖属性

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)