2
以下兩點是否有區別?通配符的泛型聲明
代碼:
List<? extends Object> ls = new ArrayList<String>();
List<?> ls1 = new ArrayList<String>();
以下兩點是否有區別?通配符的泛型聲明
代碼:
List<? extends Object> ls = new ArrayList<String>();
List<?> ls1 = new ArrayList<String>();
List<? extends Object>
和
List<?>
兩者都是相同的。由於集合不允許原語且僅在Classes
,在java中每個Class
隱含地延伸Object
。
你可以看到區別如果你寫List<? extends MyOwnParentClass>
。
但與Object
,你不會在這裏得到任何額外的利益/損失。
沒有區別,因爲隱式*每個*類型都擴展了Object – Bohemian