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