1

所以我想通过使用我分配给它的对象字符串名称来对我的 ArrayList 中的所有内容进行排序。

到目前为止,我已经阅读了 Comparators 来完成我想要做的事情。但是当我实现它时,我得到一个编译错误。

我像这样初始化它

private static ArrayList<PeopleInfo> infoArray = new ArrayList<PeopleInfo>();

并调用这样的排序

Collections.sort(infoArray, new CustomComparator());

这就是班级。

public class CustomComparator implements Comparator<PeopleInfo> {
    @Override
    public int compare(PeopleInfo o1, PeopleInfo o2) {
        return o1.GetLast().compareTo(o2.GetLast());
    }
}

我得到的错误是“无法访问 mainClass 类型的封闭实例。必须使用 mainClass 类型的封闭实例(例如 xnew A(),其中 x 是 MainClass 的实例)来限定分配。”

不是很了解发生了什么。提前致谢!

4

2 回答 2

3

将您的 Comparator 类声明为静态类

public static class CustomComparator implements Comparator<PeopleInfo> {

于 2012-10-06T08:06:31.370 回答
0

或者,您可以在主类之外声明比较器。

于 2012-10-06T09:32:03.187 回答