java - 无界通配符类型 List<?> 和原始类型 List 有什么区别?

标签 java generics list

您能帮我理解无界通配符类型列表原始类型列表之间的区别吗?

List<?> b;    // unbounded wildcard type
List a;       // raw type


除此之外,任何人都可以帮助我理解什么是有界类型参数列表

List<E extends Number> c;

最佳答案

以下是三者的总结:

  • List :没有类型参数的列表。它是一个列表,其元素可以是任意类型 -- 元素可以是不同的类型

  • List<?> :具有无界类型参数的列表。它的元素是特定但未知的类型; 元素必须是同一类型

  • List<T extends E> : 带有类型参数的列表 T .为 T 提供的类型必须是扩展 E 的类型,或者它不是参数的有效类型。

关于java - 无界通配符类型 List<?> 和原始类型 List 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351299/

相关文章:

java - 当 bean 具有拦截器或装饰器时,CDI 中的代理规则是什么?

java - 如何对 Mongodb 存储的图像进行 Tesseract Ocr

Java泛型——类型推导

list - "Pattern match is redundant"在列表推导中使用输入列表参数时

c# - 如何从现有列表创建新列表?

java - Apache POI : Elegant way to set borders to a column which contains different styles

java - JMS 如何与服务总线相关

c# - 如何在 C# 2.0 中使用匿名泛型委托(delegate)

java - <U, T extends U> 和 <T, U super T> 不一样吗?

r - 在 R 数据框中解压缩列表