Collections.max()不正确的参数

时间:2011-03-19 23:07:42

标签: java collections max comparator

我只是想找到一个“官员”列表的最大值。我正在进行的任务的规格不允许我使军官具有可比性,所以我使用比较器来比较它们。

然而,编译器抱怨我的参数类型。任何人都可以看到什么是错的? (不要担心返回......我还没有这样做。)

在下面的片段之外,官员是List< Officer>已初始化。

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

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

这个编译得很好。这是一个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
                    }
                }
            );
    }
}

所以,您发布的代码没有错。必须是其他错误的东西。