java – 获取类引用的所有类
发布时间:2020-12-15 08:37:29 所属栏目:Java 来源:网络整理
导读:假设我在运行时有一个 java.lang.Class实例. 在运行时,无论如何都要查看c使用了哪些类?例如如果c.foo实例化B,则B被“使用”.如果c.foo调用静态方法G.bar(),则使用G. 注意:只是试图获得静态知道的类 – 我很好地错过了反射加载的类. 在python中,在modulefin
假设我在运行时有一个
java.lang.Class实例.
在运行时,无论如何都要查看c使用了哪些类?例如如果c.foo实例化B,则B被“使用”.如果c.foo调用静态方法G.bar(),则使用G. 注意:只是试图获得静态知道的类 – 我很好地错过了反射加载的类. 在python中,在modulefinder中找到了相同的功能: 解决方法
可以使用反射查询在方法体,构造函数和静态初始化器之外发生的所有事情.您可以查看字段和方法签名并反映字段以获取字段值的实际类.
在方法中使用的类是一个相当大的挑战.您可以使用BCEL或类似的工具来分析类文件,并提取类文件中硬编码的所有类名.但是一旦你对接口进行编程,这将失败: public List someMethod() { return SomeClass.getList(); } someMethod返回的类的类型不为类文件所知.并且没有查找表或中央注册表. JVM将知道类型,查看类是否已加载,如果没有,则尝试加载它.它不必关心哪个类要求其他类,它不会记录此信息.仅仅因为它不需要exectution而不需要垃圾收集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 浅谈synchronized方法对非synchronized方法的影响
- java – 我应该如何检查一个Stream是否排序?
- java – 我的PeriodFormatter表现不像我期望的那样 – 我做
- Java EE企业应用程序:对部署/启动执行一些操作
- java – 在GWT 2.7超级开发模式下调试,是否缺少stackTrace?
- Java注解总结(史上最全,有这一篇就够了)
- java – 在GWT中实现拖放列表的最佳方法
- java – 如何配置Spring-Boot应用程序继续使用RestEasy?
- Java Web系列:JDBC 基础
- java – 我能告诉BufferedImage最初的文件类型是什么吗?