有没有办法让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?是相关的,但它与运行时有关,我不想运行程序,只需编译。
答案 0 :(得分:1)
答案 1 :(得分:0)
获取所有声明的字段。它会返回一个Field
数组,您可以从中获取有关字段类型,字段名称,字段修饰符等字段的所需信息。
试试这个简单的代码
Class<?> clazz = null;
try {
clazz = Class.forName("com.x.y.z.ClassName");
for (Field field : clazz.getDeclaredFields()) {
System.out.println(field.getName());
System.out.println(field.getType());
}
} catch (Throwable e) {
e.printStackTrace();
}