2013-10-19 41 views
2

以下两点是否有区别?通配符的泛型声明

代码:

List<? extends Object> ls = new ArrayList<String>(); 
List<?> ls1 = new ArrayList<String>(); 
+8

没有区别,因为隐式*每个*类型都扩展了Object – Bohemian

回答

2
List<? extends Object> 

List<?> 

两者都是相同的。由于集合不允许原语且仅在Classes,在java中每个Class隐含地延伸Object

你可以看到区别如果你写List<? extends MyOwnParentClass>

但与Object,你不会在这里得到任何额外的利益/损失。