加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在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>

一旦你改变了,剩下的就行了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读