java - 需要帮助理解此方法

标签 java generics parameterized-types

我在添加 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

最佳答案

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

这就是这里调用所做的事情。

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

在幕后,当排序算法需要比较时
两个RQEntry对象,它会调用compare你的方法
比较器。仅此而已。

关于java - 需要帮助理解此方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21732357/

相关文章:

java - 我可以使用多个 Play Server 实例来记录磁盘上的同一文件吗?

java.util.HashSet int 迭代顺序

ios - 在 Swift 中使用泛型数组作为参数的函数

java - 如何使用参数 T 模拟和验证方法

Scala Def Macros - 如何获取符号的参数化类型成员?

java - 为什么我看不到 java 守护线程抛出的异常

java - 如何正确捕获异常

java - 泛型的泛型和更通用的 <?> 赋值

java - list.toArray(T[] a),如果 "T"是 "runtime type"怎么办?

java - java java.util.List接口(interface)中不同参数类型的含义