从包含它的类中获取enum.values()

the*_*ous 4 java reflection enums

class Clazz{
    public enum MyEnum{
        Hello, World
    }
}
Run Code Online (Sandbox Code Playgroud)

上课时Clazz,我该怎么办MyEnum.values()

用法的一个例子是:

Class unknownClass = getSomeClass();
Run Code Online (Sandbox Code Playgroud)

如何获得MyEnum.values()unknownClass

Cod*_*roc 6

你可以做Clazz.MyEnum.values()访问Enum,或者你可以直接导入MyEnum你的其它类import com.in.Clazz.MyEnum监守MyEnumpublic.

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]);
Run Code Online (Sandbox Code Playgroud)

OUTPUT

Hello
Run Code Online (Sandbox Code Playgroud)