有什么方法可以使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?是相关的,但是它与运行时有关,我不想运行该程序,只需编译即可。
Java find out what imports a .class has
最佳答案
在编译期间是不可能的。您将有两个选择接近您的想法:
使用在类编译后打印导入内容的程序。例如,您可以使用BCEL编写一个。
如果您只对注释感兴趣,则可以尝试在编译期间使用APT添加注释处理器。