如何在Java中调用泛型枚举的实现方法?
发布时间:2020-12-15 08:48:16 所属栏目:Java 来源:网络整理
导读:我正在尝试将枚举传递给方法,迭代枚举值,并调用该枚举对所有这些值实现的方法.我在“value.getAlias()”部分遇到编译器错误.它说“方法getAlias()未定义为类型E”我试图表明E实现了HasAlias接口,但它似乎不起作用.这是可能的,如果是这样,我如何修复下面的代
我正在尝试将枚举传递给方法,迭代枚举值,并调用该枚举对所有这些值实现的方法.我在“value.getAlias()”部分遇到编译器错误.它说“方法getAlias()未定义为类型E”我试图表明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()); } } } 解决方法
以下是将类型绑定到实现HasAlias的枚举的方法:
<E extends Enum<E> & HasAlias> 一旦你改变了,剩下的就行了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容