【发布时间】:2013-07-29 15:32:47
【问题描述】:
我想获取一个类的导入列表。由于编译器已将其删除,我想通过反射可以扫描类、方法、字段等,并收集类加载器加载类所需的类列表。是否有某种图书馆、教程或文章您可以指点我,以便我更好地理解如何做到这一点? (我知道有人问过类似的问题,但我找不到正确的答案,我很确定这应该是可能的)。我看到了一些示例,展示了如果您有资源,您可以如何做到这一点,但在我的场景中不一定是这种情况。
非常感谢!
【问题讨论】:
-
@Gamb:这不是重复的!我已经看过了,我知道您无法获得确切的进口清单。但是,理论上您应该能够使用反射收集您的类使用的所有类的列表。我正在寻找这样的图书馆。
-
您需要查看原始字节码。您的班级可能需要一个需要另一个班级的班级。您必须继续这样做,直到您的课程用完为止。注意:这可能比您需要的要多,因为一个类可能不需要另一个类,因为它引用了它。此外,一个类可能需要通过反射另一个类。
-
@carlspring 你在想什么理论?反射无法找出实际调用了哪些方法。您可以尝试执行所有代码并查看堆栈跟踪,但您可能会错过一些执行路径。
-
@SotiriosDelimanolis:执行代码只会给你一个一个异常,而不是所有缺失的类。
标签: java reflection import