微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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