用“比较”比较两个对象<&引用;或&燃气轮机&引用;Java中的运算符

用“比较”比较两个对象<&引用;或&燃气轮机&引用;Java中的运算符,java,object,operator-overloading,comparable,Java,Object,Operator Overloading,Comparable,如何使用“”使Java中的两个对象具有可比性 e、 g 唯一的方法是?在Java中不能执行运算符重载。这意味着您无法为操作符定义自定义行为,例如+,,使用是唯一的选项(或)。接口仅定义了一个方法(而Comparator添加equals),并将此对象与指定的对象进行比较以获得顺序。此外,Java不允许运算符重载(因此您不能直接更改用于调用该方法的操作数;或者实际上修改接口)。这不是唯一的方法。您还可以实现一个比较器。比较器使用compare()方法,与使用compareTo()方法的Compara

如何使用“”使Java中的两个对象具有可比性 e、 g


唯一的方法是?

在Java中不能执行运算符重载。这意味着您无法为操作符定义自定义行为,例如
+
使用是唯一的选项(或)。接口仅定义了一个方法(而
Comparator
添加
equals
),并将此对象与指定的对象进行比较以获得顺序。此外,Java不允许运算符重载(因此您不能直接更改用于调用该方法的操作数;或者实际上修改接口)。

这不是唯一的方法。您还可以实现一个比较器。比较器使用
compare()
方法,与使用
compareTo()
方法的
Comparable
相反


你不能使用
的原因是[
compareTo
]是唯一的方法吗?是的。你不能在Java中重载
运算符。在C中,你可以重载这样的运算符。你不能与
进行比较。
compareTo
不是唯一的方法——你可以定义
小于
大于
,等等。如果需要,返回
布尔值的方法。有争议的是,它们比
compareTo
更具可读性。还有
Comparator
@Makoto提供了两种方法(并且仍然不允许运算符重载),但这是一个公平的观点,因为从技术上讲,它是另一种选择。我只是从“其他选项”的角度来看它
MyObject<String> obj1= new MyObject<String>(“blablabla”, 25);
MyObject<String> obj2= new MyObject<String>(“nannaanana”, 17);
if (obj1 > obj2) 
    do something. 
if(obj1.compareTo(obj2) > 0)
     do something
boolean isGreaterThan(MyObject<T> that) {
    return this.compareTo(that) > 0;
}

boolean isLessThan(MyObject<T> that) {
    return this.compareTo(that) < 0;
}
if (obj1.isGreaterThan(obj2)) {
    // do something
}