List<List<?>> lists = new ArrayList<List<?>>();

2016年7月13日00:33:07 时的理解

 

List<?> 看作成一个类型,

 List<List<?>> list 表示成 此List里持有List集合,而持有的集合持有类型是某特定类型

new ArrayList<List<?>>() :ArrayList 将通过多态向上转型为List ,而此List里的持有类型也必须是List,如果是其他类型就会造成无法共融的局面(如:new ArrayList<LinkedList<?>>()),想一想在编译期一个如果此list的一个可添加对象(如:ArrayList)添加进一个实际类型是LinkedList里,在运行期间肯定会出错。

而 List<List<?>> list 表示放进去的每个对象都是List<?>类型的,这狠合理,而实际上在运行期间通过调用list里的接受 List<?>参数的的方法,将会转向实际类型ArrayList<List<?>> ,ArrayList<List<?>> 同样可以执行。

posted @ 2016-07-13 01:29  巡音  阅读(1066)  评论(0编辑  收藏  举报