需要帮助将Java Generics传递给Collections.sort()

时间:2009-09-26 06:20:59

标签: java generics

我需要帮助将Java Generics List传递给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中遇到了这个编译错误: 类型集合中的方法sort(List,Comparator)不适用于参数(List,new Comparable&lt; MyObject&gt;(){})

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

3 个答案:

答案 0 :(得分:10)

当你想要一个比较器时,你正在传递一个Comparable。

答案 1 :(得分:1)

正如 Fredrik 所说,Collections.sort()需要Comparator。做得对应如下:

    List orgMyObjectList = new ArrayList();
    Collections.sort(orgMyObjectList, new Comparator() {
        @Override
        public int compare(MyObject o1, MyObject o2) {
            // TODO Auto-generated method stub
            return 0;
        }
    });

答案 2 :(得分:0)

是的,有两个问题。一个是如上所述:比较者与可比较者(并且不要忘记等于)

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

最好从非常简单的事情开始,将此问题提取到您为研究问题而编写的测试/开发程序。