我只是想找到“官员”列表的最大值。我正在处理的作业规范不允许我使警官具有可比性,因此我使用比较器进行比较。

但是,编译器在抱怨我的参数类型。谁能看到什么问题? (不必担心退货……我还没有这样做。)

在下面的片段之外,军官是已初始化的List 。

Collections.max(officers, new Comparator<Officer>()
    {
        public int compare( Officer a, Officer b )
        {
           return -1; //will do after
        }
    }
);


任何建议,将不胜感激!

最佳答案

这样编译就可以了。这是一个ideone.com demo

import java.util.*;

class Officer {
}

public class Test {

    public static void main(String[] args) {

        List<Officer> officers = new ArrayList<Officer>();

        Collections.max(officers, new Comparator<Officer>()
                {
                    public int compare( Officer a, Officer b )
                    {
                       return -1; //will do after
                    }
                }
            );
    }
}


因此,您发布的代码没有错。一定是其他错误的东西。

关于java - Collections.max()不正确的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5365536/

10-10 17:09