新手求助, 关于java问号的东西

alleni123 2013-11-12 08:23:11
public static void verify(Map<?,?> value){
value.put("1","2");
}

这里编译器会报错。

这是为什么呢?
...全文
297 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaomm627 2013-11-13
  • 打赏
  • 举报
回复
错误主要是因为第一个?,必须是字符串,这个是不需要泛型表示的,后面一个可以。 你这样写应该不会错: Map<"",?>
hepfei90 2013-11-12
  • 打赏
  • 举报
回复
在泛型中 ?表示通配符,多用于泛型继承中,表示满足的所有条件类型。 但这里涉及到具体的声明变量(这里是形式变量),就必须指明类型,这样存入的数据才不会出现类型混乱。
青山丶 2013-11-12
  • 打赏
  • 举报
回复
要么写成Map<String,String> value 要么写成Map value 第一种写法调用value的put方法时自动检查键/值的数据类型。
姜小白- 2013-11-12
  • 打赏
  • 举报
回复
要么不加这对<?,?>,加上的话对应的?就要换成对应的数据类型,java泛型
oh_Maxy 2013-11-12
  • 打赏
  • 举报
回复
用的时候,泛型要指定类型: public static void verify(Map<String,String> value){ value.put("1","2"); }

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧