2015-12-27 41 views
3
class Clazz{ 
    public enum MyEnum{ 
     Hello, World 
    } 
} 

使用類Clazz,如何獲得MyEnum.values()從包含它的類中獲取enum.values()

使用的一個例子是:

Class unknownClass = getSomeClass(); 

如何從unknownClassMyEnum.values()

+0

提示:內枚舉是隱式靜態的。 – Pshemo

+2

你有什麼嘗試?我們需要知道你已經嘗試了什麼,以及什麼不起作用 –

+0

我並不是在尋找那個。我很抱歉,這個問題含糊不清,但我真的想要一個反思型答案。只需使用類對象 – user3635998

回答

3

你可以做Clazz.MyEnum.values()訪問Enum,或者你可以直接在其他類import com.in.Clazz.MyEnum監守MyEnumpublic導入MyEnum

通過反射得到MyEnum不變,但如果MyEnum可以訪問,則不需要使用反射。你可以做到這一點在下面的方式,

Class<?> clazz = Clazz.class;//You are getting dynamically 
Class<?> enumClass = clazz.getDeclaredClasses()[0];//assuming at index 0 
Enum<?>[] enumConstants = (Enum<?>[]) enumClass.getEnumConstants(); 
System.out.println(enumConstants[0]); 

輸出

Hello