如果我有课Person
实现Comparable
(比较personA.height
to personB.height
,例如),是否可以使用
personA < personB
作为替代品
personA.compareTo(personB) == -1?
这样做有什么问题吗?或者我需要重载运算符吗?
不,无法使用personA < personB
作为替补。而且 Java 中不能重载运算符。
另外,我建议改变
personA.compareTo(personB) == -1
to
personA.compareTo(personB) < 0
您现在所拥有的可能适合您的班级。然而,合同于compareTo() http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo%28T%29是它返回负值 when personA
小于personB
。该负值不一定是 -1,如果与不同的类一起使用,您的代码可能会崩溃。如果有人改变你的班级,它也可能会崩溃compareTo()
方法到不同的但仍然兼容的实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)