java列出编译时使用的所有类
有没有办法让java编译器列出编译源代码中使用的所有类
例如,对于代码:
import foo.bar.Hello;
import java.util.List;
...
Hello hello = ...
String string = ...
List list = ...
我想去
java.lang.String
java.util.List
foo.bar.Hello
编辑
- 我希望它在编译时(或编译完成后)运行,而不是运行时李>
相关的
Obtaining a list of all classes used while running a Java application?是相关的,但它是关于运行时的,我不想运行程序,只是编译
# 1 楼答案
在编译过程中是不可能的。您将有两个接近该想法的选择:
使用在类编译后打印导入的程序。例如,您可以使用BCEL编写一个
如果您只对注释感兴趣,可以尝试在编译期间使用APT添加注释处理器
# 2 楼答案
获取所有声明的字段。它将返回一个
Field
数组,从中可以获得有关字段的所需信息,如字段类型、字段名称、字段修饰符等有关更多信息,请阅读Field JavaDoc
试试这个简单的代码