我正在开发一些调试工具。我现在想做的是为测试人员提供一个GUI窗口,该窗口将显示Enum
条目-它们的名称和人类可读的值。我想让基本对话框类尽可能通用,因为要查看多个枚举。
此外,其中一些枚举实现了通用接口。例如。
public enum DaysOfTheWeek implements CanBeTranslated { ...
因此,我试图以此为基础。想了一会儿之后,我创建了这个变量:
Class<Enum<? extends CanBeTranslated>> entries;
我希望可以像
entries.values()
一样访问DaysOfTheWeek.values
,但是不,它似乎无法正常工作。我想做的是:for(CanBeTranslated entry: myMagicEnumVariable.values()) {
// display entry in GUI
}
有没有一种方法可以处理变量中的抽象枚举(如“非特定的”)?我需要访问枚举才能获取字段名称,这很重要-如果不是这种情况,我可以使用值数组。
还请记住,这个问题是从以下角度提出的
编写调试代码
出于好奇而尝试
当我问怪异的事情以有趣的方式做事时,我遇到了来自专业Java开发人员的非常敌对的态度,因此免责声明。
最佳答案
这应该做您想要的:
Class<? extends CanBeTranslated> entries = DaysOfTheWeek.class;
for (CanBeTranslated entry : entries.getEnumConstants()) {
// ...
}