可能重复:
What does List<?> mean in java generics?
What does the question mark in Java generics' type parameter mean?
道歉,但很难尝试搜索<?>
。
Java泛型有什么意义?我理解<A extends B>
和<A super B>
,但我之前从未见过这个问号。
答案 0 :(得分:48)
<?>
是<? extends Object>
的简写,它也被称为无界通配符。因此,您可以在通用中指定任何类型的对象。
例如,List
类声明为List<?>
,因为它可以是您想要的任何列表。
<强>资源:强>
答案 1 :(得分:12)
它是wildcard
类型。它是? extends Object
如果你得到它,你所知道的只是Object
。如果您尝试设置,则不能,因为它可能是Object的任何子类。
答案 2 :(得分:4)
通配符Generic是“某事”。它将作为从Object扩展的东西来处理。
来自Java documentation:
在通用代码中,问号(?),称为通配符, 代表一种未知类型。通配符可以用于各种 情境:作为参数,字段或局部变量的类型; 有时作为返回类型(虽然它是更好的编程实践 更具体)。通配符永远不会用作类型参数 用于泛型方法调用,泛型类实例创建或 超类型。
因此,例如,List<?>
是包含未知类型对象的列表。
答案 3 :(得分:3)
它是一个通配符。假设您有一个集合但该集合的类型未知,因此您用“?”表示它。它只是指定类型未知。 有关详细信息,请参阅http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf 我相信它会有所帮助。