通过Class <! - ? - >引用获取所有枚举值

时间:2014-07-14 09:22:30

标签: java reflection enums

我正在通过反思分析一个班级的某些领域。如果字段的类型是枚举类型,我想要检索此枚举的所有值。

private MappedType mapType( final Class<?> c ) {
    ... 
    else if (Enum.class.isAssignableFrom( field ))
         {

            //This code is not valid
            final Enum<?> e = (Enum<?>) c;
            Object[] possibleValues=e.values();
            ...
            return MappedType.ENUM;
         }

如何检索所有可能枚举值的列表? (值的字符串名称就足够了)

1 个答案:

答案 0 :(得分:0)

请参阅http://docs.oracle.com/javase/tutorial/reflect/special/enumMembers.html

给定Enum类的完全限定名称,您可以通过

找到其中的常量
Class.getEnumConstants()

假设您在字段变量中传递字段的类,您可以尝试如下

 else if (Enum.class.isAssignableFrom( field ))
 {
        Object[] possibleValues=field.getEnumConstants();
  //...
 }