第2个回答 2018-10-22
我是这样理解的:
首先<? extends Comparable<? super T>> 和<T extends Comparable<? super T>> 这两个,是两种不同的类型形参范围设置方式,前者是通配符的形式,后者是自定义类型的形式。
这两者在有些时候可以通用,有时则不能或者不合适。
通配符是被设计用来支持子类灵活化的,如果某个方法中一个形参a的类型或返回值的类型依赖于另一个形参b的类型,则形参b的类型声明不应该使用通配符,因为依赖性比较强,b类型无法确定,a也无法定义。这时就要采用自定义类型传入自定义的T.