有人告诉我compareTo必须返回一个int ...不是布尔值。
例如:
退货
如果b等于0
如果a 如果a> b,则+1
我对此感到有些困惑。任何帮助将不胜感激。
public int compareTo(Cheese anotherCheese)
throws ClassCastException
{
if (!(anotherCheese instanceof Cheese))
throw new ClassCastException("A Cheese object expected.");
if(getCheeseType().compareTo(anotherCheese.getCheeseType()))
return -1;
else if (getCheeseType().compareTo(anotherCheese.getCheeseType()))
return 1;
else
return cheesePrice > anotherCheese.getCheesePrice();
}
编译时,出现错误消息:
不兼容的类型
if(getCheeseType().compareTo(anotherCheese.getCheeseType()))
不兼容的类型
else if (getCheeseType().compareTo(anotherCheese.getCheeseType()))
不兼容的类型
return cheesePrice > anotherCheese.getCheesePrice();
最佳答案
compareTo
确实返回int
,而不是boolean
。因此,您会得到那些编译错误。在if
语句中,必须放置boolean
。
所以代替if(getCheeseType().compareTo(anotherCheese.getCheeseType()))
写if(getCheeseType().compareTo(anotherCheese.getCheeseType()) < 0)