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

时间:2015-12-27 03:47:48

标签: java reflection enums

class Clazz{
    public enum MyEnum{
        Hello, World
    }
}

使用课程Clazz,如何获得MyEnum.values()

用法的一个例子是:

Class unknownClass = getSomeClass();

如何从MyEnum.values()获取unknownClass

2 个答案:

答案 0 :(得分:6)

您可以Clazz.MyEnum.values()访问Enum,也可以直接导入其他课程MyEnum import com.in.Clazz.MyEnum因为MyEnum public 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

<强>输出

{{1}}

答案 1 :(得分:0)

The answer is here:

Method method = parameterIDClass.getMethod("values");
Enum<?>[] enums = (Enum<?>[])method.invoke(null);
相关问题