我可以传递并使用枚举作为变量吗?

时间:2016-06-17 00:43:45

标签: java oop generics enums polymorphism

我正在研究一些调试工具。我此刻尝试做的是为测试人员提供一个GUI窗口,显示Enum个条目 - 他们的名字和人类可读的值。我希望基本对话框类尽可能通用,因为有多个枚举可供查看。

此外,其中一些枚举实现了通用接口。例如

public enum DaysOfTheWeek implements CanBeTranslated { ...

因此我试图以此为基础。经过一段时间的思考,我创建了这个变量:

Class<Enum<? extends CanBeTranslated>> entries;

我希望能够entries.values()访问DaysOfTheWeek.values但{no},但它似乎不会那样工作。我想做的是:

for(CanBeTranslated entry: myMagicEnumVariable.values()) {
    // display entry in GUI
}

有没有办法在变量中使用抽象(如&#34;不是特定的&#34;)枚举?我需要访问枚举才能获得字段名称,这很重要 - 如果不是这样的话,我可以使用值数组。

请记住,这个问题是从

的角度提出的
  • 编写调试代码
  • 出于好奇而尝试

我遇到了一个非常敌对的专业Java开发人员的态度,当时我提出了一些关于为了好玩而做不同事情的奇怪问题,因此这个免责声明。

1 个答案:

答案 0 :(得分:3)

这应该做你想要的:

Class<? extends CanBeTranslated> entries = DaysOfTheWeek.class;
for (CanBeTranslated entry : entries.getEnumConstants()) {
    // ...
}