使用通用通配符代替接口
如果要存储类型为 的对象数组,以下两者是否可以接受,如果是这样,您将何时使用第二种形式而不是第一种形式?MyInterface
i) 仅使用接口:-
List<MyInterface> mylist = new ArrayList<MyInterface>();
ii) 使用通用通配符:-
List<? extends MyInterface> mylist = new ArrayList<? extends MyInterface>();
编辑:
正如到目前为止的答案所指出的那样,数字ii不会编译。i和案例iii有什么区别:-
iii) 仅在引用中使用通用通配符:-
List<? extends MyInterface> mylist = new ArrayList<MyInterface>();