我有这段代码:
for(GlCapabs_e capName : capabs.keySet()){
x = capName.get();
}
其中GlCapabs_e
是enum
而capabs
是EnumMap<GlCapabs_e, Boolean>
。但是GlCapabs_e
输入错误,因为我无法在get()
上使用capName;
它不能是常量,它必须是支持get()
的类型所以要返回键的值。
我已经阅读过Java文档中的某个地方(我再也找不到了)“{特殊”类型存在,如elementOf
,itemOf
或类似的东西,但谷歌搜索它们并没有返回任何内容关于我的事。在此之上,我不确定这是否是我应该使用的类型。
答案 0 :(得分:1)
你正在迭代keySet
。如果要获取映射到密钥集中每个密钥的值,请使用EnumMap
检索值
for(GlCapabs_e capName : capabs.keySet()){
x = capabs.get(capName);
}
或迭代entrySet
for (Entry<GlCapabs_e, Boolean> entry : capabs.entrySet()) {
x = entry.getValue(); // the entry holds both the key and the mapped value
}