如何使用反射获取.java文件的所有类名。
当我运行以下代码时,它只会打印出Boat。我试过使像这样的类的数组:
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文件中编写多个类(只有一个公共类),也将获得多个.class文件。因此,您无法从.java文件获取类列表。
您确实可以编写一个自定义解析器来解析.java文件并检索类名。不知道该怎么用?