我终于找到了解决方案。
ASM Bytepreframework是正确的工具。使用官方教程和正确的示例,很容易获得所有需要的依赖关系。在该示例中,已经有一个访问者类
DependencyVisitor可以满足我的要求。为了获得正确的格式,我只需要在
DependencyVistitor示例代码中更改一种方法,因此它添加了完整的类名,而不是仅添加包:
private String getGroupKey(String name){ //Just comment that block so you can get full class names instead of package only // Replace resource char with package separator char packages.add(name.replace("/", ".")); //packages.add(name); return name;}查看
DependencyVisitor代码,您可以轻松了解其功能并根据需要对其进行修改。在我的示例类上运行它会给我带来漂亮而有用的输出:
[java.util.ArrayList, java.lang.Object, java.util.List, java.awt.Point,goobar.test.asmhello.TestClass, java.lang.String, java.lang.Integer,java.awt.Graphics,goobar.test.asmhello.TestClass2]。它包含我使用过的每个类和接口,以及用于泛型参数化的每种类型。



