这是什么用法 怎么可以写成这样啊
问题描述:
Map<?, ?> parameters = request.getParameterMap();
这是什么用法 啊 为什么数据类型可以写成问号啊 写成问号又代表什么 有什么好处
答
这个是泛型通配符
https://my.oschina.net/jiemachina/blog/201507
通配符(?)
上面有泛型的定义和赋值;当在赋值的时候,上面一节说赋值的都是为具体类型,当赋值的类型不确定的时候,我们用通配符(?)代替了:
如
List<?> unknownList;
List<? extends Number> unknownNumberList;
List<? super Integer> unknownBaseLineIntgerList;
在Java集合框架中,对于参数值是未知类型的容器类,只能读取其中元素,不能向其中添加元素, 因为,其类型是未知,所以编译器无法识别添加元素的类型和容器的类型是否兼容,唯一的例外是NULL