gpt4 book ai didi

java - 比较运算符自定义对象java

转载 作者:行者123 更新时间:2023-11-29 07:41:25 26 4
gpt4 key购买 nike

是否有支持对自定义对象进行比较操作的插件?

我想用这个:

class MyTemperatureObject implements Comparable<MyTemperatureObject> {
...
@Override
public int compareTo(MyTemperatureObject object) {
return getValue().compareTo(object.getValue());
}
}

MyTemperatureObject a;
MyTemperatureObject b;

if (a < b){
...
}

这给出了编译错误:

Operator '<' cannot be applied to MyTemperatureObject

但我认为编译器可以使用Comparable 接口(interface)来评估它。或者是否有可能是不可能或不明智地这样做的原因。

我知道我可以使用 compareTo 函数

a.compareTo(b) < 0

但我认为这样更易读/易理解

 a < b

最佳答案

在 Java 中,<运算符只能用于数字类型。编译器不会自动应用 compareTo对象比较方法。

重写你的条件如下:

if (a.compareTo(b) < 0){ /* ... */ }

compareTo 的语义JavaDoc 中清楚地记录了方法,但本质上可以归结为:

Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

关于java - 比较运算符自定义对象java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29741323/

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