当我在 Java 中迭代非泛型映射时遇到奇怪的问题
Map map=new HashMap();
for (Map.Entry entry:map.entrySet()){
}
但编译器抱怨并说“类型不匹配:无法从元素类型 Object 转换为 Map.Entry”
当我将 Map 类型更改为 Generics 时,它可以工作
Map<Object,Object> map=new HashMap<Object,Object>();
for (Map.Entry entry:map.entrySet()){
}
这让我很困惑,有人知道是什么原因吗?提前致谢。
当您使用原始类型时,就像您在这里所做的那样Map
,所有泛型都被关闭,所以entrySet()
只返回一个裸露的Set
类型(不是Set<Map.Entry whatever>
),如果你迭代它,你只能得到Object
已经摆脱了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)