当我在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
它.
归档时间: |
|
查看次数: |
4178 次 |
最近记录: |