作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们知道,如果我们想创建一个类的对象,就必须实现一个接口(interface)的所有方法。但是为什么java中不需要同时实现Comparator
接口(interface)的compare()
和equals()
方法呢?
我同意目的已经解决,但即便如此,如果我们覆盖 compare
(),为什么不强制覆盖 equals
()?
最佳答案
由于所有类都隐式扩展了 Object
,因此每个 Comparator
的实现都有一个 equals 方法,因为每个 Object
都有一个。
如果您定义一个带有 toString() 方法的接口(interface),情况也是一样的。
public interface ToString {
public String toString();
}
public class SomeClass implements ToString {
// toString implicitly implemented, because Object defines it
}
当您查看类时,它说“实现了 ToString”,这是真的,不是吗?
关于java - 为什么Java中没有必要重写接口(interface)Comparator的两种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582823/
我正在使用 this solution在二进制矩阵中找到与图像边界对齐的矩形。假设现在我想找到一个不与图像边框对齐的矩形,并且我不知道它的方向;找到它的最快方法是什么? 为了示例,让我们寻找一个仅包含
else: 行在这个 Python 程序中是否正确/必要? from random import randrange for n in range(10): r = randrange(0,1
在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而
我是一名优秀的程序员,十分优秀!