当前位置:编程学习 > JAVA >>

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

public static void verify(Map<?,?> value){
value.put("1","2");
}

这里编译器会报错。

这是为什么呢?
--------------------编程问答-------------------- 用的时候,泛型要指定类型:
public static void verify(Map<String,String> value){
value.put("1","2");
} --------------------编程问答-------------------- 要么不加这对<?,?>,加上的话对应的?就要换成对应的数据类型,java泛型  --------------------编程问答-------------------- 要么写成Map<String,String> value
要么写成Map value


第一种写法调用value的put方法时自动检查键/值的数据类型。

--------------------编程问答-------------------- 在泛型中 ?表示通配符,多用于泛型继承中,表示满足的所有条件类型。
但这里涉及到具体的声明变量(这里是形式变量),就必须指明类型,这样存入的数据才不会出现类型混乱。 --------------------编程问答-------------------- 错误主要是因为第一个?,必须是字符串,这个是不需要泛型表示的,后面一个可以。
你这样写应该不会错: Map<"",?>
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,