我已经看过以前用来表示任何对象的通配符-但最近看到了以下用法:
<? extends Object>
由于所有对象都扩展了对象,所以这两种用法是同义词吗?
<?>并且<? extends Object>是同义的,正如你所期望的。
<?>
在某些情况下,泛型extends Object实际上并不是多余的。例如,<T extends Object & Foo>将导致T成为Object下删除,而与<T extends Foo>它会成为Foo下删除。(如果你要保留与使用的前泛型API的兼容性,这可能很重要Object。)
extends Object
<T extends Object & Foo>
T
Object
<T extends Foo>
Foo
来源:http : //download.oracle.com/javase/tutorial/extra/generics/convert.html ; 它说明了为什么JDK的java.util.Collections类具有带有此签名的方法:
java.util.Collections
public static <T extends Object & Comparable<? super T>> T max( Collection<? extends T> coll )