我正在尝试将枚举传递给一个方法,遍历该枚举值,然后调用该枚举在所有这些值上实现的方法。我在“value.getAlias()”部分收到编译器错误。它说“类型 E 的方法 getAlias() 未定义”我试图表明 E 实现了 HasAlias 接口,但它似乎不起作用。这可能吗,如果可以,我该如何修复下面的代码来做我想做的事?下面的代码只是为了展示我的过程,并不是我只想打印枚举中值的名称,而是为了证明我的问题。
public interface HasAlias{ String getAlias(); };
public enum Letters implements HasAlias
{
A("The letter A"),
B("The letter B");
private final String alias;
public String getAlias(){return alias;}
public Letters(String alias)
{
this.alias = alias;
}
}
public enum Numbers implements HasAlias
{
ONE("The number one"),
TWO("The number two");
private final String alias;
public String getAlias(){return alias;}
public Letters(String alias)
{
this.alias = alias;
}
}
public class Identifier
{
public <E extends Enum<? extends HasAlias>> void identify(Class<E> enumClass)
{
for(E value : enumClass.getEnumConstants())
{
System.out.println(value.getAlias());
}
}
}