[英]Java enum reflection when enum is inside a class
我有多個類的實例,其中嵌入了一個枚舉。 這是所述類的簡化版本:
public class FirstClass extends BaseClass {
public enum EnumGroup {
ONE("one"),
TWO("two");
private String mName;
EnumGroup(String name) {
this.mName = name;
}
public String getName() {
return mName;
}
}
// FirstClass methods
}
我的目標是以編程方式迭代這些類(即FirstClass,SecondClass等)並拉出枚舉(總稱為“EnumGroup”)並在枚舉的每個值上調用方法getName()。
我看過這篇關於Java反射和枚舉的StackOverflow帖子 ,但是當我嘗試通過指定路徑(com.package.FirstClass.EnumGroup)來獲取我的枚舉時,我得到了一個ClassNotFoundException。 我猜測把這個枚舉放在課堂里搞砸了。
Class<?> clz = Class.forName("com.package.FirstClass.EnumGroup");
我不一定需要這個設置,但最終目標是在每個迭代enum的類中都沒有相同的代碼。
由於您使用Class.forName
你需要使用類的名稱 ,並在類名內類型從外類型的分離$
。
所以使用
Class<?> clz = Class.forName("com.package.FirstClass$EnumGroup");
// ^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.