如何将对象与另一个对象进行比较

时间:2017-08-03 10:27:22

标签: java

我运行以下

Choice choice1 = new Choice(0);
       Choice choice2 = new Choice(1);
       int result = choice1.compareWith(choice2);

       IO.outputln("Actual: " + result);

compareWith方法

public int compareWith(Choice anotherChoice)
    {

        int result=0;           
        if (anotherChoice==0||type==0)
            result=1;
        if (anotherChoice==1&&type==1)
        result=-11;
    }

程序说我无法将另一个选择(选择类)与整数进行比较。我怎么能这样做。

2 个答案:

答案 0 :(得分:2)

if (anotherChoice==0||type==0)

由于anotherChoice是一个对象,因此您无法直接与0进行比较。您应该实际检查该对象的字段。所以你的代码应该是

if (anotherChoice.type==0|| this.type==0)

其他条件相同。

另一个错误是你没有从你的方法返回任何东西。你应该。

public int compareWith(Choice anotherChoice)
    {

        int result=0;           
        if (anotherChoice==0||type==0)
            result=1;
        if (anotherChoice==1&&type==1)
        result=-11;

       return result;
    }

答案 1 :(得分:1)

您应该为此实施Comparable。在比较值时,您还需要从Choice中获取type值:

public class Choice implements Comparable<Choice>
{
    @Override
    public int compareTo(Choice that)
    {
        int result = 0;
        if (anotherChoice.type == 0 || type == 0)
            result = 1;
        if (anotherChoice.type == 1 && type == 1)
            result = -11; // should probably be -1

        return result;
    }
}