【发布时间】:2011-07-05 16:57:25
【问题描述】:
我想创建一个 JComboBox 来处理选择给它的任何 Enum。为此,我需要一种方法来检索传递给 JComboBox 的 Enum 的所有可用值。因为我不知道具体的枚举,所以我不能打电话给EnumType.values()。
我可以想到一些复杂的解决方案,其中支持的枚举必须实现我定义的一些接口,但我想我错过了一个更简单、更通用的解决方案。我应该怎么走?
【问题讨论】:
-
EnumType.values()有什么问题? -
我不知道我正在处理的 EnumType,所以没有 values() 方法。
-
任何 Enum 都有一个
values()方法... -
@Oltarus,
values()是一个静态方法,所以他必须在编译时知道要使用哪个枚举。 -
我们可以通过反射调用
values()方法。实际上,这就是Class.getEnumConstants()第一次调用课程时所做的事情。