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