小编典典

<?>和<?有什么区别?在Java泛型中扩展Object>?

java

我已经看过以前用来表示任何对象的通配符-但最近看到了以下用法:

<? extends Object>

由于所有对象都扩展了对象,所以这两种用法是同义词吗?


阅读 457

收藏
2020-03-16

共1个答案

小编典典

<?>并且<? extends Object>是同义的,正如你所期望的。

在某些情况下,泛型extends Object实际上并不是多余的。例如,<T extends Object & Foo>将导致T成为Object下删除,而与<T extends Foo>它会成为Foo下删除。(如果你要保留与使用的前泛型API的兼容性,这可能很重要Object。)

来源:http : //download.oracle.com/javase/tutorial/extra/generics/convert.html ; 它说明了为什么JDK的java.util.Collections类具有带有此签名的方法:

public static <T extends Object & Comparable<? super T>> T max(
    Collection<? extends T> coll
)
2020-03-16