簡體   English   中英

枚舉在類中時的Java枚舉反射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM