我想了解compareTo
方法。我写了这个类AboutcompareTo
,但我卡在为什么/我如何得到这个错误? - 代码几乎完成。 任何人都可以详细解释我做错了什么。由于为什么我得到关于compareTo方法的这个错误?
代码:
public class AboutCompareTo {
public static void main(String[] args) {
Fruit[] fruits = { new Fruit(2), new Fruit(3), new Fruit(1) };
java.util.Arrays.sort(fruits);
}
}
class Fruit implements Comparable<Fruit> {
private double weight;
public Fruit(double weight) {
this.weight = weight;
}
@Override
public int compareTo(Fruit o) {
Fruit f = (Fruit) o;
if (Fruit > o.Fruit) // <-- the error
return 1;
else if ((Fruit < o.Fruit)) // <-- the error
return -1;
else
return 0;
}
}
“_how我得到这个错误?_”什么错误?不要说你至少没有告诉我们什么是错误的。 “Fruit> o.Fruit”应该做什么? – csmckelvey
您不能使用'>'和'<'运算符及其修饰符来比较Java对象。您必须使用对象方法本身来比较对象。 'f.compareTo(O)'。此外,您需要定义水果比其他水果更大或更小的含义。所以把你的compareTo()方法改成'return this.getWeight() - o.getWeight()' – Kon
你不能对对象做关系运算符 –