我在添加java泛型的過程中遇到了這個舊代碼,我不明白這裏發生了什麼以及需要更改什麼。需要幫助理解這種方法
static void sortByDate(List list) throws Exception
{
class MyComparator implements Comparator {
public int compare(Object o1, Object o2) {
RQEntry o11 = (RQEntry) o1;
RQEntry o22 = (RQEntry) o2;
int cc = ((String)o11.getHandledDate()).compareTo(o22.getHandledDate());
return (cc < 0 ? -1 : cc > 0 ? 1 : 0);
}
};
Collections.sort(list, new MyComparator());
}
問題1:可能有人解釋這種方法是如何進行比較呢?
問題2:應傳遞哪些泛型類型參數以符合Java 5標準?
問題3:如何通過創建MyComparator
的新實例調用compare
方法?
更新:
剛剛發現這個鏈接,終於讓我明白這個代碼:http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
讀取比較器的Java文檔。這將解釋很多 –
對,並閱讀'Collections.sort'的javadoc。 – pamphlet
'o22.getHandledDate()'返回什麼?如果它不返回'String',那麼代碼不應該編譯。如果它返回'String',並且方法名稱有點不合適。 –