作者ephesians (ephesians)
看板Programming
标题Re: [问题]Java中,如何implements Comparable?
时间Sat Jun 9 11:30:43 2007
※ 引述《[email protected] (我真的一点也不糟糕!)》之铭言:
: 一个我写的Java class如下:
: public class InventoryItem implements Comparable
(略)
: 必须override compareTo():
: public int compareTo(Object other)
(略)
: 所以又overload它,使其达到我的要求
: public int compareTo(InventoryItem item)
(略)
: for(int index = 0; index < numberUsed - 1; index++)
: for(int i = 0; i < numberUsed - 1 - index; i++)
: if(a[i].compareTo(a[i + 1]) > 0) //<--here is the problem
: exchange(i, i + 1, a);
(略)
: 结果在a[i].compareTo(a[i + 1])这里出了差错
: 我利用输出的方式检查,所有传回的值都是零
: 这代表我写的InventoryItem并不算是一种Comparable type吗?
粗浅地猜测,会不会是因为compareTo的方法署名为:
public int compareTo(Object other)
而你的实作
public int compareTo(InventoryItem item)
并不完全覆写Comparable介面的方法.
也许可以加上这个覆写:
public int compareTo(Object other) {
compareTo((InventoryItem)other);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.215.118