【问题标题】:Need help in passing Java Generics to Collections.sort()在将 Java 泛型传递给 Collections.sort() 方面需要帮助
【发布时间】:2009-09-26 06:20:59
【问题描述】:

在将 Java 泛型列表传递给 Collections.sort() 时,我需要帮助。这是我的代码:

List<MyObject> orgMyObjectList = new ArrayList<MyObject>();
Collections.sort(orgMyObjectList, new Comparable<MyObject>() {

        public int compareTo(MyObject another) {
            // TODO Auto-generated method stub
            return 0;
        }
    });

但是我在 eclipse 中得到这个编译器错误: Collections 类型中的方法 sort(List, Comparator) 不适用于参数 (List, new Comparable(){})

你能告诉我如何解决它吗?

【问题讨论】:

    标签: java generics


    【解决方案1】:

    当 Comparable 需要 Comparator 时,您正在传递它。

    【讨论】:

      【解决方案2】:

      正如 Fredrik 所说,Collections.sort() 需要 Comparator。让它看起来像这样:

      列表 orgMyObjectList = new ArrayList(); Collections.sort(orgMyObjectList, new Comparator() { @覆盖 公共 int 比较(我的对象 o1,我的对象 o2){ // TODO 自动生成的方法存根 返回0; } });

      【讨论】:

        【解决方案3】:

        是的,有两个问题。一个如前所述:Comparator vs Comparable(不要忘记equals)

        另一个是用// TODO Auto-generated method stub发帖表明你有很多工作要做。那就是告诉您需要编写比较操作。

        最好从一些非常简单的事情开始,将这个问题拉到一个你为研究这个问题而编写的测试/开发程序中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-15
          • 2011-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多