是否可以为自定义对象定义用于 if 语句比较的值?
我有:
公共(public)类元素实现 Comparable {
public int value;
public int[] sequence;
public int length;
public element(){}
public element(int val){
this.value = val;
}
@Override
public int compareTo(Object o) {
return
}
我想使用 if 语句如下:
if (element1 > element2) ..
而不是传统的:
if (element1.value > element2.value) ..
我一直无法用比较器、toString() 等来完成这个
最佳答案
您不能将对象引用与 >
一起使用运算符(operator),根据 JLS 15.20.1 ; Java 不支持运算符重载。但是你在使用 Comparator
的正确轨道上.
if (comparator.compare(element1, element2) > 0) // if (element1 > element2)
如果你的类(class)是Comparable<Element>
也是可以的,即与其他元素相比。
if (element1.compareTo(element2) > 0) // if (element1 > element2)
关于Java 对象 : value for comparison in if statement, 运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487091/