2010-04-28 143 views
57

是否可以從Java內部類中獲取對this的引用?如何從內部類訪問外部類的「this」?

class Outer { 

    void aMethod() { 

    NewClass newClass = new NewClass() { 
     void bMethod() { 
     // How to I get access to "this" (pointing to outer) from here? 
     } 
    }; 
    } 
} 

回答

71

可以訪問外部類的實例是這樣的:

Outer.this 
6

前面加上外部類的類名來此:

outer.this 
1

是的,你可以使用外部類名稱這個outer.this

27

Outer.this

即。

class Outer { 
    void aMethod() { 
     NewClass newClass = new NewClass() { 
      void bMethod() { 
       System.out.println(Outer.this.getClass().getName()); // print Outer 
      } 
     }; 
    } 
} 

BTW在Java中,類名以大寫字母開頭。