加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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>).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读