gpt4 book ai didi

java - 为什么不在接口(interface) Comparator 中实现所有方法?

转载 作者:搜寻专家 更新时间:2023-11-01 02:21:27 24 4
gpt4 key购买 nike

今天,我正在尝试学习 Java 8 中的一些特性,特别是关于 Lambda 表达式的特性。我像这样创建一个新的 Comaparator :

Comparator<String> strCom = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return 0;
}
};

当我阅读 Comparator 接口(interface)内的代码时,我感到很困惑。尽管接口(interface) Comparator 有两个方法 compare()equals(),我们不需要实现所有的方法。我找到了一些我们不需要实现方法 equals() 的原因 here .但我也阅读了javadocs

If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile. What Is an Interface?

那么,有人可以帮助我理解这一点吗?不覆盖 equals() 是否仍然合法?

最佳答案

equal不需要实现,因为它继承自Object类,Java中一切皆对象

正如您在文档中看到的,equal 方法已经在 Object 类中定义: https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

如果你想检查两个比较器是否具有相同的数据并因此“相等”,你只需要实现 equals 方法,但这可能不是你要找的,因为比较器通常不保存任何实例变量

关于java - 为什么不在接口(interface) Comparator 中实现所有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40741658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com