如果你想存储一个类型的对象数组,MyInterface以下两者都是可以接受的,如果是这样的话你何时会使用第二个形式而不是第一个?
i)仅使用接口: -
List<MyInterface> mylist = new ArrayList<MyInterface>();
Run Code Online (Sandbox Code Playgroud)
ii)使用通用通配符: -
List<? extends MyInterface> mylist = new ArrayList<? extends MyInterface>();
Run Code Online (Sandbox Code Playgroud)
编辑:
至于到目前为止的答案已经指出,第二号将无法编译.我和案例iii有什么区别:
iii)仅在参考文献中使用通用通配符: -
List<? extends MyInterface> mylist = new ArrayList<MyInterface>();
Run Code Online (Sandbox Code Playgroud)