Java 对象 : value for comparison in if statement, 运算符重载

标签 java object return

是否可以为自定义对象定义用于 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/

相关文章:

javascript - 在 for 循环内调用对象的函数 - JavaScript

javascript - 函数在不应该设置变量时设置变量

java - 从 try 资源结构返回 Future

java - 在芝麻工作台上创建一个存储库,当重启tomcat时,它就消失了

java - 带有包含复选框的自定义适配器的 ListView

java - 需要检查 gps 是否启用

java - 该方法必须返回一个 int 类型

java - 带有 PendingIntent 的 Android 通知的额外 null

javascript - 如何使用 lodash 从对象中删除未定义值和空值?

c++ - C++ 类的大小