当前位置: 首页 > 知识库问答 >
问题:

通过类引用获取所有枚举值

厉念
2023-03-14
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个答案

翟冯浩
2023-03-14

参见http://docs.oracle.com/javase/tutorial/reflect/special/enummembers.html

给定枚举类的完全限定名,可以通过

Class.getEnumConstants()

假设您正在传递field变量中的field的类,您可以如下所示

 else if (Enum.class.isAssignableFrom( field ))
 {
        Object[] possibleValues=field.getEnumConstants();
  //...
 }
 类似资料:
  • 问题内容: 我有一个这样声明的枚举: 现在,我想通过反射找出该枚举的键(SystemRunning,SystemStopped,tmpIdle): 输出为:RUNNING STOPPED IDLE 但是,我想使用Strings SystemRunning,tmpIdle等。 提前非常感谢您。 问题答案: 首先,您需要使您的非静态变量。 然后,您需要在枚举中添加getter方法,该方法将返回 然后将

  • 我使用Enum4库创建enum类,如下所示: 我想在某处打印作为列表。如何实现这一点?

  • 问题内容: 我已经编写了一个枚举类,我想按类型获取属性或按属性获取类型,但这似乎是不可能的。 上面的代码将无法编译。如何上班? 问题答案: 您需要做的就是添加一个默认情况,以便该方法始终返回某些内容或引发异常: 也许更好

  • 问题内容: 具有内部字段的枚举,有点像地图。 现在,我需要按其内部字段枚举。 写下: 但是,每次需要查找适当的实例时,对所有枚举进行查找并不是非常有效。 还有其他方法可以做到吗? 问题答案: 您可以将a 与初始化程序一起使用,该初始化程序将使用由其字段键入的值来填充它。 请注意,已完成,也已完成。 您现在可以期望是一个操作。 参考文献 JLS 8.7静态初始值设定项 JLS 8.9枚举 注意 该方

  • 问题内容: 假设是,我将如何产生给定序数的枚举值? 问题答案: 足够了。一条线; 足够简单。

  • 问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案: