我看不出这种默认排序方法(来自java.util.Collections)之间的任何区别
public static <T extends Comparable<? super T>> void sort(List<T> list) {
//implementation
}
Run Code Online (Sandbox Code Playgroud)
..还有这个 :
public static <T extends Comparable<T>> void mySort(List<T> list) {
//implementation
}
Run Code Online (Sandbox Code Playgroud)
虽然我知道"上"和"下"有界通配符之间的差异,但我仍然不明白为什么他们使用'?在这种情况下,超级T'而不是简单的'T'.如果我使用这些方法,我会得到相同的结果.任何建议?
使用您的版本,以下内容将无法编译:
class Base implements Comparable<Base> { ... }
class Derived extends Base { ... }
List<Derived> list = ...;
mySort(list);
Run Code Online (Sandbox Code Playgroud)
Derived也不会延长Comparable<Derived>.但是,它确实延伸Comparable<Base>(因此Comparable<? super Derived>).
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |