如何获取使用反射的.java文件的所有类名称。Java反射获取多个类
当我运行下面的代码它只打印出船。我曾试图使像类的数组:
Class c[] = Class.forName("boat.Boat")
,但它会导致一个语法错误
public class Reflection {
public static void main(String[] args) {
try {
Class c = Class.forName("boat.Boat");
System.out.println(c.getSimpleName());
} catch(Exception e) {
e.printStackTrace();
}
}
}
Boat.java
package boat;
public class Boat extends Vehicle {
public Boat() {}
}
class Vehicle {
public Vehicle() {
name = "";
}
private name;
}
如果不读取Java源文件并以这种方式进行解析,就无法据我所知。一旦该类被编译,它就不会保留源文件位置的知识。你可以做出一些有教育意义的猜测,就像公共类可能来自一个类似名称的Java源文件,但你甚至不能为非公开类做这些。 –