2008-08-27 6 views

答えて

85

私は最近、これを見つけました。 OuterClassName.thisを使用してください。を更新しました

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

あなただけの(代わりに呼び出すメンバーの)オブジェクト自体をしたい場合は、Outer.thisは進むべき道です。

+0

感謝!これは長い間私を悩ませています。幸いなことに、グーグルサーチをすばやく実行できました。 – aglassman

19

使用EnclosingClass.this

1

あなたはまだあなたがアクセスしたい場合は

を((Outer.this.getClassと同じクラスのオブジェクトを返す)が、より効率的であるだろう)外部クラスのオブジェクトのクラスを取得するためにOuter.classを使用することができます囲むクラスの静的な場合は、Outer.nameを使用できます.nameは静的なフィールドまたはメソッドです。

関連する問題