2013-10-19 39 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,你不會在這裏得到任何額外的利益/損失。