所以我想通过使用分配给它的对象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> {