如何獲取使用反射的.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源文件,但你甚至不能爲非公開類做這些。 –