首页 > 解决方案 > 带有枚举的泛型集

问题描述

问题空间已被剥离。

所以我有以下我无法改变的界面。

public interface ItemInterface {
  Set<Enum<?>> getItems();
}

我创建了 Items 枚举类

public enum Item{
  ITEM1, ITEM2, ITEM3 
}

所以当我实现该方法时它不会编译。

public class ItemImpl implements ItemInterface {

    @Override
    public Set<Enum<?>> getItems() {
        Set<Item> vals = new HashSet<>();
        vals.add(Item.ITEM1);
        return vals;  
    }
}

返回类型不匹配,我得到编译错误?有任何想法吗?

标签: javagenericsenumsinterfaceenumset

解决方案


只需声明valsSet<Enum<?>>

public class ItemImpl implements ItemInterface {

    @Override
    public Set<Enum<?>> getItems() {
        Set<Enum<?>> vals = new HashSet<>();
        vals.add(Item.ITEM1);
        return vals;  
    }
}

推荐阅读