当我用Java迭代非泛型映射时,编译器会抱怨

zjffdu:

我在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()){

}

这让我感到困惑,有人知道原因吗?提前致谢。

newacct:

当您使用原始类型时,就像您在此处使用所做的那样Map,所有泛型都被关闭,因此entrySet()只返回一个裸Set类型(不是Set<Map.Entry whatever>),如果您对其进行迭代,则只能从中获取Object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

泛型和迭代器的Java编译器错误

当我用两个分号结束一行时,编译器不会抱怨。为什么?

当我尝试覆盖静态方法时,为什么编译器没有抱怨?

当我清楚地看到编译器为何会抱怨“并非所有代码路径都返回一个值”时,为什么?

Java泛型-编译器错误

当我在Java的静态块中声明接口时,为什么编译器会显示错误?

处理泛型时编译器没有用的期望?

声明泛型类型时的编译器警告

在Java中转换为泛型方法类型变量时出现编译器警告

保存ArrayLists时由泛型引起的Java编译器警告

调用泛型方法java的编译器错误

Java:递归泛型编译器错误

当我忽略泛型类型定义时,为什么打字稿不会抱怨?

泛型混淆:欺骗编译器

为什么Java编译器会抱怨将foreach与原始类型一起使用?

为什么编译器会抱怨分配?

如何告诉编译器我的可为空的 c# 泛型约束?

尝试在闭包中使用泛型时发生意外的编译器错误

使用泛型时,javac编译器会为每种类型创建不同的类吗?

在两种情况下在特征中使用abstract修饰符时,编译器为何会抱怨?

如果我已经实现了Drop,为什么使用PhantomData通知编译器结构拥有泛型有用吗?

使用Java泛型并将List作为方法参数的编译器错误并引发泛型异常

当我将Maven Java编译器插件从1.5更改为1.6时,为什么会得到一个不可映射的字符来编码UTF-8?

使用具有多个边界的泛型时,编译器不会显示编译时错误

Java编译器:停止抱怨死代码

为什么Java编译器抱怨StringBuffer

Java编译器抱怨未报告的IOException

Java:为什么编译器在这里抱怨?

为什么java编译器不抱怨“\ s”?