53

可能重复:
List<?> 在 java 泛型中是什么意思?
Java泛型的类型参数中的问号是什么意思?

道歉,但很难尝试搜索<?>

关于 Java 泛型是什么意思?我理解<A extends B>and <A super B>,但我以前从未单独见过这个问号。

4

4 回答 4

67

<?>是 的简写<? extends Object>,也称为无界通配符。因此,您可以在泛型中指定任何类型的对象。

例如,List该类被声明为List<?>,因为它可以是您想要的任何内容的列表。


资源:

于 2012-07-09T09:34:00.783 回答
14

它是一种wildcard类型。它是缩写? extends Object

如果你明白了,你只知道它是一个Object. 如果您尝试设置,则无法设置,因为它可能是 Object 的任何子类。

于 2012-07-09T09:34:18.607 回答
5

通配符 Generic 是“某物”。它将作为从 Object 扩展而来的东西来处理。

来自 Java文档

在通用代码中,称为通配符的问号 (?) 表示未知类型。通配符可用于多种情况:作为参数、字段或局部变量的类型;有时作为返回类型(尽管更具体的是更好的编程实践)。通配符永远不会用作泛型方法调用、泛型类实例创建或超类型的类型参数。

因此,例如,aList<?>是一个包含未知类型对象的列表。

于 2012-07-09T09:35:59.057 回答
3

它是一个通配符。假设您有一个集合,但该集合的类型未知,因此您用“?”表示它。它只是指定类型未知。有关更多详细信息,请参阅http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf 我相信它会有所帮助。

于 2012-07-09T09:35:39.853 回答