通配符(?)和Object是有区别的:
void function(List<Object>){} void function(List<?>){} function(new List<String>()); //对于第一种方法编译错误
原因:String是Object的子类,但List<String>不是List<Object>的子类,所以引入了通配符。
下面的文章分析的很好~
http://hi.baidu.com/mycollection/item/2fe3a9dd507109de251f4042