【问题标题】:Get enumeration values from Class从 Class 中获取枚举值
【发布时间】:2010-11-01 09:24:27
【问题描述】:

是否可以从一个类中获取枚举值?让我详细说明一下。如果我有一个枚举,例如 FooBar,那么我可以通过调用 FooBar.values() 来获取 FooBar 的值,这将返回一个带有枚举 (FooBar[]) 的数组。我的问题是,我有一个将类(类 c)作为输入参数的方法,并且在方法中我检查它是否是枚举(c.isEnum())。如果它是一个枚举,我需要以某种方式获取枚举值,问题是我不知道该怎么做,我什至不完全确定这是可能的。那么,是否有可能,如果是,我该如何做到这一点? (请注意,解决方案必须是通用的,也就是说不是 if-else 的)。

【问题讨论】:

    标签: java enums


    【解决方案1】:

    嗯...你看过 API 文档了吗?

    Class.getEnumConstants()

    【讨论】:

    【解决方案2】:

    已编辑:您可以使用 c.getClass().getEnumConstants() 来获取常量的值

    (它说的是“名称”而不是“价值”,并添加了一些不必要的东西)

    【讨论】:

    • 错了。 getEnumConstants() 返回值,而不是名称 - 如果类对象是,它们甚至是通过泛型输入的,尽管在这种情况下可能不适用。
    • 啊,我以为我刚刚测试过,但我的快速脏测试中有一个错误;对此感到抱歉。
    猜你喜欢
    • 2011-10-09
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多