所以我想通过使用我分配给它的对象String Name对我的ArrayList中的所有内容进行排序。
到目前为止,我已经阅读了有关比较器的信息,以获得我想要的功能。 但是当我实现它时,我得到了一个编译错误。
我像这样初始化它
private static ArrayList<PeopleInfo> infoArray = new ArrayList<PeopleInfo>();
并调用这样的排序
Collections.sort(infoArray, new CustomComparator());
这就是Class。
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的实例)。”
不太了解发生了什么。 提前谢谢!
答案 0 :(得分:3)
将Comparator类声明为静态类
public static class CustomComparator implements Comparator<PeopleInfo> {
答案 1 :(得分:0)
或者,您可以在主类之外声明比较器。