1

そこで、割り当てたオブジェクトの文字列名を使用して、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型の包含インスタンス(egxnew 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 に答える