天之丛云 2014-05-16 14:40
浏览 321
已采纳

Map 类型转换问题

具体情况是这样的:

我一个方法签名是这样的

 

public  void writeSheet(List<Map<String, Object>> data);

 

但是当我 传入一个 List<Map<String,String>> list 时,他却提示参数类型不符, 但是我 又添加一各方法时,却被提示方法已存在

public  void writeSheet(List<Map<String, String>> data);

 我想问下 ,Map中的类型没有 向上兼容的特性吗? 比如 Object通吃一切类型。

 

  • 写回答

6条回答 默认 最新

  • bylijinnan 2014-05-16 16:03
    关注

    (1).数组是协变的,即如果Sub为Super的子类型,那么数组类型Sub[]就是Super[]的子类型;
    泛型是不可变的,即对于任何两个不同类型Type1和Type2,List既不是List的子类型,也不是List的超类型。
    Object[] objectArray = new Long[1];
    objectArray[0] = “I don't fit in”;
    上述代码在编译时没有错误,只有在运行时才会报ArrayStoreException。
    List ol = new ArrayList();
    ol.add(“I don’t fit in”);
    上述代码的第一句就会在编译时报类型不兼容错误。

    详见《Effective Java》

    简单地说,Map不是Map的超类型

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)