Menambah daftar dengan wildcard batas atas di java [duplikat]

Diberikan kode berikut:

public class Test{

    static class Bird{}
    static class Sparrow extends Bird{}
    
    public static void main(String args[]){
    
    List<? extends Bird> list = new ArrayList<Bird>();
   
    list.add(new Bird()); //Does not compile ...line 1
    list.add(new Sparrow());//Does not compile ...line 2
     
    }
}

Adakah yang bisa menjelaskan mengapa saya tidak dapat menambahkan objek new Bird() dan objek new Sparrow() ke dalam daftar? Saya mengharapkan baris 1 dan baris 2 untuk dikompilasi karena kelas Sparrow adalah subkelas dari Bird, dan Bird adalah kelas itu sendiri.


person san    schedule 03.10.2020    source sumber
comment
Apakah ini menjawab pertanyaan Anda?   -  person JustAnotherDeveloper    schedule 03.10.2020
comment
Duplikat persis: Kartu bebas batas atas menyebabkan kesalahan kompilasi di Java   -  person Alex Shesterov    schedule 03.10.2020