1

内部クラスを取得していません。Javaで内部クラスを使用する理由は何ですか?静的および非静的のネストされたクラスの良い例を教えてください。それの長所/短所は何ですか?乾杯

4

1 に答える 1

2

匿名の内部クラスは、たとえばイベントリスナーやコンパレータを実装する場合など、メソッドが非常に少ないワンショットクラスを定義するのに役立ちます。このような場合、本格的なクラスは他の場所では使用されないため、やり過ぎになります。

匿名内部クラスとして実装された文字列リストのコンパレータの簡単な例を次に示します。

Collections.sort(myArrayList, new Comparator() {
    public int compare(Object a, Object b) {
        return ((String) a).compareToIgnoreCase((String) b);
    }
});

またはmyArrayList、一般的なリストである場合、次のようになります。

Collections.sort(myArrayList, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return a.compareToIgnoreCase(b);
    }
});
于 2013-02-10T22:29:43.717 に答える