重写对象类的compareTo方法



有人能向我解释一下以下代码的作用吗。我是编程新手。我很难理解"当前对象"的含义此代码包含在实现Comparable接口的类中。它有一个conscutor,它接受int数字和String描述。它还有一个用于数字和描述的get方法。

    @Override
    public int compareTo (Object o)
    {
        Item i = (Item) o;
        if (this.getNumber () < i.getNumber())
            return -1;
        if (this.getNumber () > i.getNumber())
            return 1;
        return 0;
Item i = (Item) o;

此行将传入对象o强制转换为Item类,然后将其存储在i上。

if (this.getNumber () < i.getNumber())

此行将接收的对象与从调用方法的对象进行比较,特别是它们的数字字段。

return 0;

只有在不满足之前的任何条件的情况下,才能到达此行。在这种情况下,当this.getNumber()等于i.getNumber().时,它返回0

int x = objectOne.compareTo(objectTwo);

该假设行将相应的返回值分配给x

例如,如果objectOne.getNumber()小于objectTwo.getNumber(),则x将被赋值为-1。

compareTo()返回一个int,指示比较值是否大于(1)、等于(0)或小于(-1)。怎么了?

最新更新