有人告诉我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)

09-30 18:50