假设我有类A
,它覆盖默认的equals
方法并实现Comparable
接口(Comparable
接口被认为是自然排序)。为了符合良好实践,equals
和Comparable's compareTo
方法返回的结果应该是一致的。
在某些情况下,我想以不同的方式比较类A
的实例,因此我实现Comparator
接口(Comparator
接口被认为是不自然的排序)。因此,使用Comparable's compareTo
方法和Comparator's compare
方法,结果将不一致。
如果equals
方法和Comparable's compareTo
界面一致,Comparable's comparaTo
方法和Comparator's compare
方法不一致,则equals
方法和Comparator's compare
方法也不一致。
那么equals
方法与Comparator's compare
方法不一致的后果是什么?如果有的话?