compareto - 想了解在没有实现时 compareTo 方法是如何工作的
问题描述
你能帮我理解下面的代码是如何工作的吗
static <T extends Comparable<T>> boolean less(T v, T w) {
return v.compareTo(w) < 0;
}
我可以看到 compareTo 方法没有给出实现,它仍然可以正常工作,请告诉我它是如何工作的。
我想了解自然排序是如何完成的。我在哪里可以看到代码。
解决方案
该方法定义了对类型的约束T
。AnyT
将扩展Comparable
包含 compareTo() 方法的接口。
static <T extends Comparable<T>> boolean less(T v, T w) {
return v.compareTo(w) < 0;
}
根据该约定,任何传入此方法的对象v
都w
必须实现该compareTo()
方法。
要验证这一点,您可以尝试如下所示的编译错误。
public static void main(String[] args) {
less(new Object(), new Object());
}
希望这可以帮助您更好地理解它。
推荐阅读
- android - requestNetworkScan - 返回无效的小区标识 - Android P
- c# - 要发布哪些文件?ASP .Net 核心 2.0
- ios - 为什么 #available(iOS 11, *) 在 iOS 12 上解析为 true?
- kubernetes - 有没有办法让两个具有相同应用程序的容器连接到 Kubernetes 上的同一个数据库?
- powershell - 使用通配符作为驱动器号启动进程
- android - 使用 Firebase-UI、Firestore 作为数据库和 Picasso 时,图像不会出现在 RecyclerView 中
- c - 加速包含事件的 ODE 的并行求解
- php - Smarty输出动态变量
- jhipster - 我应该如何将漂亮的“显示值”映射到 JDL 枚举?
- atom-editor - 如何从原子打开特定文件?