首页 > 解决方案 > 在java中使用上限通配符添加到列表

问题描述

给定以下代码:

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
     
    }
}

有人可以解释为什么我不能将对象new Bird()和对象添加new Sparrow()到列表中吗?我期待第 1 行和第 2 行能够编译,因为该类Sparrow是 , 的子类Bird,并且Bird它本身就是。

标签: javawildcardupperbound

解决方案


推荐阅读