所以我想通过使用分配给它的对象String Name整理ArrayList中的所有内容。

到目前为止,我已经阅读了有关比较器的信息,以完成所需的工作。
但是当我实现它时,我得到了一个编译错误。

我这样初始化

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的封闭实例来限制分配(例如,x.new A(),其中x是MainClass的实例)。”

不太了解正在发生的事情。
提前致谢!

最佳答案

将您的Comparator类声明为静态类

public static class CustomComparator implements Comparator<PeopleInfo> {

10-04 17:16