解决方案 »

  1.   

    第三句该这么写List<HashMap<String,String>> listData = new ArrayList<HashMap<String,String>>();List中是什么类型的,你new的时候还能new别的类型?
      

  2.   

    你应该可以看到IDE给的提示了吧:
    Type mismatch: cannot convert from ArrayList<HashMap<String,String>> to List<Map<String,String>>
    泛型要一致,要么前面的改成HashMap,要么后面的改成Map。
      

  3.   

    我只是偶然发现第三句Eclipse会报错,贴出来只是想问个明白。第三句为什么错了?
      

  4.   

    List<Map<String,String>> listData = new ArrayList<Map<String,String>>();
      

  5.   

    错误提示我也看了,就是有点诧异,Java为什么会不支持这么写,按照父类引用可以指向子类实例的说法,这么写应该是没问题的
      

  6.   

    错误提示我也看了,就是有点诧异,Java为什么会不支持这么写,按照父类引用可以指向子类实例的说法,这么写应该是没问题的
    父类引用指向子类实例没错,但是你的第三句中
    List<Map<String,String>> listData = new ArrayList<HashMap<String,String>>();
    new ArrayList是实例,但是HashMap<String, String>却不是实例,它只是一种类型,所以报错
      

  7.   

    错误提示我也看了,就是有点诧异,Java为什么会不支持这么写,按照父类引用可以指向子类实例的说法,这么写应该是没问题的
    父类引用可以指向子类实例是Java的多态性,这和泛型没有关系。泛型就是说要提前定义好你这个集合的类型,你前面是Map后面就要一致。具体查一下泛型的基础规则和用法。