Я наткнулся на этот старый код в процессе добавления джава-дженериков и не понимаю, что тут происходит и что нужно изменить.
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. Как вызвать метод compare
, просто создав новый экземпляр MyComparator
?
Обновление:
Только что нашел эту ссылку, которая, наконец, помогла мне понять этот код: http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
Collections.sort
. - person pamphlet   schedule 12.02.2014o22.getHandledDate()
? Если он не возвращаетString
, код не должен компилироваться. А если вернетString
, то и имя метода немного неподходящее. - person Rohit Jain   schedule 12.02.2014String
делает имя метода неподходящим? Похоже, что он сортируется (в алфавитном порядке) по дате обработки. - person pamphlet   schedule 12.02.2014getHandledDate
действительно должен возвращатьDate
, а неString
. - person Rohit Jain   schedule 12.02.2014