2个回答
展开全部
Java中不允许嵌套泛型的内层通配符?匹配一个具体的类型,因为这可能破坏类型安全。
这样做是可以的:
List<?> list = new ArrayList<Integer>();
而这样做是不可以的:
List<List<?>> list = new ArrayList<List<Integer>>();
这样做是可以的:
List<?> list = new ArrayList<Integer>();
而这样做是不可以的:
List<List<?>> list = new ArrayList<List<Integer>>();
追问
可以可以 你这个回答比较服众 ,但是我还想追问下,java为什么规定不可以嵌套泛型的内层通配符啊? 如果允许会造成什么后果呢?
追答
如果允许第二种写法,那么就会出现下面的问题:
List> list = new ArrayList>();
List sublist = new ArrayList();
list.add(sublist);
list.get(0).add(new Object());
结果是一个Object类型的对象被添加到了List中,破坏了类型安全。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询