如何使用二元运算符“<”和“>”来比较Java中的对象?

How to use binary operators "<" and ">" for comparing objects in Java?

考虑在 Java 中加入此 class:

public class Foo implements Comparable<Foo> {
    private int someValue;

    @Override
    public int compareTo(Foo o) {
        if (this.someValue < o.someValue) {
            return -1;
        } else if (this.someValue == o.someValue) {
            return 0;
        } else {
            return 1;
        }
    }
}

我试过这样做:

Foo foo1 = new Foo(someValue);
Foo foo2 = new Foo(someAnotherValue);
if (foo1 < foo2) {
   // do something
}

但是 IDE 给我一个错误是:"Bad operand types for binary operation '<' first type: Foo, second type: Foo"

你能告诉我哪里出了问题吗?

在此先感谢您的帮助,

实现 Comparable 接口是正确比较对象的良好开端。但是,这不允许您使用 <> 比较运算符,就好像这些运算符已过载一样。你只需要调用你的 compareTo 方法。

if (foo1.compareTo(foo2) < 0) {