为什么它不是<t extend =“ =“可比较=”“>,而不是<t Implements =””可比较=“”>?

时间:2019-05-25 09:35:51

标签: java generics

定义一个像这样的类

public class MyRandomList<T extends Comparable>{
    List<T> randomList;
}

意味着我们可以使用实现可比较的任何类创建MyRandomList实例。

MyRandomList<ComparableStudent> l = new MyRandomList<ComparableStudent>();

哪里

public class ComparableStudent implements Comparable<ComparableStudent>{

}

语法应该不是<T implements Comparable>吗?
还是我了解Java的根本错误?

1 个答案:

答案 0 :(得分:1)

简而言之:Java在定义泛型类型参数的界限时不会在接口和类之间进行区分。 extends用于接口和类类型,这使the bound direction(从主帖上的Sambits评论添加的链接)的表达更加简化。