如何从内部类访问外部类的“this”?

时间:2010-04-28 17:22:46

标签: java inner-classes

是否可以从Java内部类中获取对this的引用?

class Outer {

  void aMethod() {

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

5 个答案:

答案 0 :(得分:84)

您可以像这样访问外部类的实例:

Outer.this

答案 1 :(得分:29)

Outer.this

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

BTW在Java类名称中按惯例以大写开头。

答案 2 :(得分:6)

将外层类的名称添加到此:

outer.this

答案 3 :(得分:1)

是的,你可以使用这个的外部类名。      的 outer.this

答案 4 :(得分:0)

其他:将内部类声明为“静态”时是不可能的。