我在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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句