新手求助, 关于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