有什么方法可以使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添加注释处理器。

10-08 08:47
查看更多