import java.util.*;
public class abc {
    public static void main(String[] args) {
        Map map = new HashMap();
        Iterator iterator = map.entrySet().iterator();
        while(iterator.hasNext()) {
            Map.Entry entry = iterator.next();
            Object key = entry.getKey();//
        }
    }}请大神帮我来看一下为什么下面这句话会报错? Map.Entry entry = iterator.next();Incompatible types.
Required:
java.util.Map.Entry
<,
>
Found:
java.lang.Object

解决方案 »

  1.   

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;public class a {
    public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();
    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    String key = entry.getKey();
    }
    }
    }
      

  2.   

    你这代码看的迷糊了下,,,sorry,,,你看看应该这样写
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;public class a {
    public static void main(String[] args) {
    Map map = new HashMap();
    Iterator iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
    Map.Entry entry = (Map.Entry) iterator.next();
    Object key = entry.getKey();//
    }
    }
    }
      

  3.   

    你的疑问可以看下泛型和object的区别,避免误导你
      

  4.   

    就是这个疑问,为啥要把iterator.next()强制转化呢?iterator.next()不是Map.Entry类型吗?这点我没搞懂
      

  5.   

    你这个泛型编译后默认的Object类型,你可以拿Object接收,但是父类转子类必须加强转