我在添加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:如何仅通过创建compare的新实例来调用MyComparator方法?

更新:

刚刚找到此链接,该链接终于帮助我理解了以下代码:http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html

最佳答案

如果您有List<RQEntry>,则可以使用此比较器对其进行排序。
RQEntry对象将根据其处理日期进行比较。

这就是这里的调用正在执行的操作。

Collections.sort(list, new MyComparator());

在幕后,当排序算法需要比较时
两个RQEntry对象,它将调用您的compare方法
比较器。就这样。

09-25 20:41