我正在研究一些调试工具。我此刻尝试做的是为测试人员提供一个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开发人员的态度,当时我提出了一些关于为了好玩而做不同事情的奇怪问题,因此这个免责声明。
答案 0 :(得分:3)
这应该做你想要的:
Class<? extends CanBeTranslated> entries = DaysOfTheWeek.class;
for (CanBeTranslated entry : entries.getEnumConstants()) {
// ...
}