如何解决如何识别重写从文库的方法与ASM库?
我使用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 举报,一经查实,本站将立刻删除。