虽然compareTo方法的契约只指定了返回值的符号,但为什么几乎所有方法实现只返回-1,0,1?
答案 0 :(得分:2)
...为什么几乎所有方法实现都只返回-1,0,1?
我不能代表其他程序员,但我通常会这样做,因为在大多数情况下这样做更简单,更方便。最重要的是,正确。
我想你正在考虑这样做:
public int compareTo (MyClass other) {
return this.intField - other.intField;
}
当心。这段代码巧妙地错了。请参阅此问答:Java Integer compareTo() - why use comparison vs. subtraction?
答案 1 :(得分:0)
如果您已阅读合同,则已阅读原因。
无论如何我会链接它:http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo(T)
答案 2 :(得分:0)
比较两个值时,请说出a
和b
。只有3种可能性。
a
等于b
a
小于b
a
大于b
那么你使用compateTo()
只需检查上述情况。那么0
意味着有平等。 -1
表示a
小于b
,1
表示a
大于b
如果a
和b
是对象,则考虑参考值。