首页 > 解决方案 > 想了解在没有实现时 compareTo 方法是如何工作的

问题描述

你能帮我理解下面的代码是如何工作的吗

  static <T extends Comparable<T>> boolean less(T v, T w) {
        return v.compareTo(w) < 0;
    }

我可以看到 compareTo 方法没有给出实现,它仍然可以正常工作,请告诉我它是如何工作的。

我想了解自然排序是如何完成的。我在哪里可以看到代码。

标签: compareto

解决方案


该方法定义了对类型的约束T。AnyT将扩展Comparable包含 compareTo() 方法的接口。

static <T extends Comparable<T>> boolean less(T v, T w) {
    return v.compareTo(w) < 0;
}

根据该约定,任何传入此方法的对象vw必须实现该compareTo()方法。

要验证这一点,您可以尝试如下所示的编译错误。

public static void main(String[] args) {
     less(new Object(), new Object());
}

希望这可以帮助您更好地理解它。


推荐阅读