当我在Java中迭代非泛型地图时,我遇到了问题
Map map=new HashMap();
for (Map.Entry entry:map.entrySet()){
}
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨并说"类型不匹配:无法从元素类型Object转换为Map.Entry"当我将Map类型更改为Generics时,它可以工作
Map<Object,Object> map=new HashMap<Object,Object>();
for (Map.Entry entry:map.entrySet()){
}
Run Code Online (Sandbox Code Playgroud)
这让我很困惑,有谁知道是什么原因?提前致谢.
当你使用原始类型时,就像你在这里一样Map,所有泛型都被关闭了,所以entrySet()只返回一个裸Set类型(不是Set<Map.Entry whatever>),如果你迭代它,你只能得到Object它.