鍍金池/ 問答/Java  C++/ 為什么無法往下界通配符的容器中add父類?

為什么無法往下界通配符的容器中add父類?

public class User {

}
public class Child extends User {

}

import java.util.LinkedList;

public class Test {
    public static void main(String[] args) {
        LinkedList<? super Child> linkedList = new LinkedList<>();
        linkedList.add(new Child());
        linkedList.add(new User());
      /**
         * 上面添加User報(bào)錯
         * The method add(capture#2-of ? super Child) in the type LinkedList<capture#2-of ? super Child> is not applicable for the arguments (User)
         */
    }
}
回答
編輯回答
逗婦乳
? super Child:參數(shù)類型必須是Child或者Child的父類,但Child父類無法確定,所以不能add

只能add Child或者Child的子類,因?yàn)镃hild的子類肯定也屬于Child型的。

2018年5月8日 12:49