我想從枚舉類型本身內檢索枚舉類型的名稱:的Java枚舉類型名稱反射
enum Mammals {
DOG(new Dog()),
CAT(new Cat());
public String alias;
Mammals(AncestorOfDogAndCat a){
this.alias=this.getClass().getName().toLowerCase();
System.out.println(alias);
}
}
當我如他們,我得到
Main$mammals
Main$mammals
但我想
dog
cat
你沒有傳遞構造函數的參數,但我可以看到每個枚舉常量都有值。爲什麼? – atiqkhaled
@atiqkhaled對不起,我刪除了一些不必要的代碼,但留下了一些垃圾 – michelemarcon
我不明白爲什麼你需要通過狗實例,如果你不使用或存儲它。有幾個答案已經依賴於'name()'方法,但是如果你需要實例,你只需調用它的'toString'方法?這將使打印依賴於dog/cat實例,而不是枚舉類型名稱。 –