首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >compareTo的实现在哪里?

compareTo的实现在哪里?
EN

Stack Overflow用户
提问于 2021-12-15 17:39:42
回答 1查看 69关注 0票数 -3

下面是实现Comparator接口的类。

代码语言:javascript
运行
复制
public class Descending implements Comparator {

  @Override
  public int compare(Object o1, Object o2) {
    if( o1 instanceof Comparable && o2 instanceof Comparable) {
      Comparable c1 = (Comparable) o1;
      Comparable c2 = (Comparable) o2;
      return c1.compareTo(c2);
    }
    return -1;
  }
}

如您所见,将比较两个整数值并将其排序。我想知道的是,在比较重写方法中,它使用Comparable接口将两个值作为c2.compareTo(c1)进行比较。我认为Comparable也是接口,因此必须详细实现比较两个整数的compareTo方法。但是,当我进入compareTo方法时,它只是Comparable接口的内部。我试图基于这样的假设寻找compareTo实现的位置( Comparable方法中的compareTo应该在某个地方被覆盖以执行c2.compareTo(c1)),但是没有搜索它,而且我认为没有地方可以定义它的重写方法。我的假设是假的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-15 18:19:11

Object o1 & Object o2的具体类实现了compareTo方法。

Instant类为例。该类的Javadocimplements Comparable<Instant>。这意味着该类的作者承诺实现该接口Comparable的方法。该接口上的唯一方法是compareTo

因此,我们向下滚动Instant Javadoc页面,以找到接受Instant类型参数的方法compareTo

如果您查看OpenJDK项目中该类的开源实现,就会发现方法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70368052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档