如何使用反射获取.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文件并检索类名。不知道该怎么用?

10-08 02:00