java – 可比较<?超级T> vs.可比较
发布时间:2020-12-15 04:19:50 所属栏目:Java 来源:网络整理
导读:我看不出这种默认排序方法(来自 java.util.Collections)之间的任何区别 public static T extends Comparable? super T void sort(ListT list) { //implementation} ..还有这个 : public static T extends ComparableT void mySort(ListT list) { //implemen
我看不出这种默认排序方法(来自
java.util.Collections)之间的任何区别
public static <T extends Comparable<? super T>> void sort(List<T> list) { //implementation } ..还有这个 : public static <T extends Comparable<T>> void mySort(List<T> list) { //implementation } 虽然我知道“上”和“下”有界通配符之间的差异,但我仍然不明白为什么他们使用’?在这种情况下,超级T’而不是简单的’T’.如果我使用这些方法,我会得到相同的结果.任何建议? 解决方法
使用您的版本,以下内容将无法编译:
class Base implements Comparable<Base> { ... } class Derived extends Base { ... } List<Derived> list = ...; mySort(list); 派生不会扩展Comparable< Derived>.但是,它确实扩展了Comparable< Base>. (因此,Comparable<?super Derived>). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |