这里泛型 E 使用的compareTo() 具体的是怎么比较的?
来源:6-4 改进添加操作:深入理解递归终止条件

CarlosLiu
2018-11-09
波波老师,这里添加操作中进行两个节点的比较,我们知道,对于自定义的对象,需要实现 Comparable 接口,并自定义实现 compareTo()方法, 但是这里并没有在E 这个泛型的类中重写Comparable 中的compareTo() 方法,因此这里的compareTo() 是根据什么进行比较的呢?我如果可以通过源码看的到具体比较的方法?谢谢!
写回答
1回答
-
由于我们进行了泛型限制:
public class BST<E extends Comparable<E>>
所以,我们知道,存储在这个BST中的类型E,一定实现了Comparable接口。所以我们可以放心的调用comareTo。具体它是怎么实现的,BST不管!传来的是Integer,用的就是Integer的compareTo;传来的是String,用的就是String的compareTo。如果传来Student,这个Student必须实现了Comparable接口,也就是必须自定义了compareTo,用的就是自定义的那个compareTo:)
012018-11-09
相似问题