java - 列表<?扩展基础> VS 列表<基础>

标签 java generics

List<? extends Base> list

List<Base> list

这两种声明有什么区别吗?

谢谢,

最佳答案

是的。

List<Base>可以包含所有派生自 Base 的不同事物的混合物. List<? extend Base>包含同质项(从某种意义上说,它们必须全部派生自某个特定的未知类型,而该类型又派生自 Base)。

换句话说,List<? extends Base>List<T extends Base> 的基类.所以你可以传递 List<T extends Base>任何采用 List<? extends Base> 的方法.对于采用 List<Base> 的方法,情况并非如此。 .

关于java - 列表<?扩展基础> VS 列表<基础>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488445/

相关文章:

java - 使用谷歌应用程序引擎中托管的java程序调用facebook api(php)

java - Mockito - 如何验证间接私有(private)字段对象进行的方法调用

java - 使用泛型和通配符进行合适的设计

generics - 单个构造函数的通用边界

java - 带工作池的 HTTP 请求队列

java - Java 中带有 iText 的多行标题

Java - JFrame 在调用时不更新

java - java中泛型的困惑

c# - Ninject - 管理泛型类型的不一致性?

java - java中将非参数化列表转换为参数化列表