java - 在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
它本身就是。
解决方案
推荐阅读
- smartcard - 我在哪里可以找到 EMV 卡上的 CVK(卡验证密钥)?
- android - 变量外函数
- html - 如何使用 rvest 从 div 中提取标签?
- java - 如何在 JFrame 中相对于 JPanel 定位 JDialog
- python - 带有 cumsum 的 pandas groupby 不会建立索引
- typescript - 如何表示 TS 装饰器的输出类的类型
- angular - 读取打字稿中的所有表头列名
- python - 如何正确使用单个键的 apply 和 int 内部值
- javascript - 网速会影响浏览器 JavaScript 吗?
- eclipse - 具有多个 JDK 的 Eclipse 2020-09