我运行以下
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;
}
程序说我无法将另一个选择(选择类)与整数进行比较。我怎么能这样做。
答案 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;
}
}