泛型是什么<! - ? - >实际上意味着什么?

时间:2012-07-09 09:31:27

标签: java generics

  

可能重复:
  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>,但我之前从未见过这个问号。

4 个答案:

答案 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 我相信它会有所帮助。