無法使用通配符泛型為Java集合添加值為什么此代碼不編譯(Parent是接口)?List<? extends Parent> list = ...Parent p = factory.get(); // returns concrete implementationlist.set(0, p);
// fails here: set(int, ? extends Parent) cannot be applied to (int, Parent)
3 回答
幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
List<Child> childList = new ArrayList<Child>();childList.add(new Child());List<? extends Parent> parentList = childList; parentList.set(0, new Parent());Child child = childList.get(0); // No! It's not a child! Type safety is broken...
List<? extends Parent>ParentList<Parent>List<Child>List<GrandChild>List<T>TParentList<T>ParentT
添加回答
舉報
0/150
提交
取消
