从传递给它的枚举返回EnumMap的方法

时间:2014-03-27 16:09:07

标签: java methods enums enumeration

这可能吗?我不认为这是,但我只想确定。 这就是我的尝试。

private Map enumToMap(Enum<?> e){
    EnumMap map = new EnumMap<e, String>(e.getClass()); // error can't resolve constructor for EnumMap
    for (History h : History.values()) {
        map.put(h, h.answer());
    }
    return map;
}

1 个答案:

答案 0 :(得分:2)

我怀疑Historyenum。否则,您将遇到绑定类型错误。

如果History类型是enum,则问题的根位于public EnumMap (Class< K > keyType)构造函数中,因为根据javadoc,它:

  

使用指定的键类型创建一个空的枚举映射。

在您的情况下,您要定义密钥类型为History,同时您将Enum.class传递给构造函数。

有效的定义是:

new EnumMap<History, String>(History.class);