类似于
List<Integer> [ ] = new ArrayList<> [ ];
List<Integer> [] lists = new ArrayList<>[];
后面的这个<>写上去是报错的
正确的写法应该是:
List<Integer> [] lists1 = new ArrayList[];
我的猜测:
如果允许第一种写方法的存在,那么多态的存在会导致运行时出现ClassCast异常
Object类是所有类的父类,所以可以:
lists = [list1,list2,....]其中的list都是Integer泛型的
Object[] objects = lists;
listStr = new ArrayList<String>;
listStr.add("...")
此时如果把listStr赋值到objects的第一个里,原则上是没有任何问题的
因为Object是所有类的父类
但是这个地方应该是Integer泛型的ArrayList,如果这样允许存在,
要么运行时出现类转化异常
要么lists定义时的泛型推断就失去了意义
这只是我在这个新手阶段的一些不成熟的见解,在未来新的视角可能会有不同的体会,如有意见欢迎指正
参考文章:
https://www.cnblogs.com/zawier/p/8505098.html