51

私は現在、外部クラスでこれへの明示的な参照を作成しているので、匿名の内部クラスで参照する名前があります。これを行うためのより良い方法はありますか?

4

3 に答える 3

92

私は最近これを見つけました。を使用しOuterClassName.thisます。

class Outer {
    void foo() {
        new Thread() {
            public void run() {
                Outer.this.bar();
            }
        }.start();
    }
    void bar() {
        System.out.println("BAR!");
    }
}

更新(メンバーを呼び出すのではなく)オブジェクト自体が必要な場合は、それOuter.thisが最適な方法です。

于 2008-08-27T20:40:40.300 に答える
19

使用するEnclosingClass.this

于 2008-08-27T20:40:06.417 に答える
1

Outer.class を使用して、外部クラス オブジェクトのクラスを取得することもできます (Outer.this.getClass() と同じ Class オブジェクトを返しますが、より効率的です)。

外側のクラスの static にアクセスする場合は、名前が静的フィールドまたはメソッドである Outer.name を使用できます。

于 2008-09-16T15:18:44.197 に答える