Как можно получить доступ к" этому " внешнего класса из внутреннего класса?


можно ли получить ссылку на this из внутреннего класса Java?

т. е.

class Outer {

  void aMethod() {

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

4 ответа:

вы можете получить доступ к экземпляру внешнего класса, как этот:

Outer.this

внешний.это

ie.

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

кстати в Java имена классов начинаются с верхнего регистра по соглашению.

добавьте к этому имя класса внешнего класса:

outer.this

да, вы можете, используя имя внешнего класса с этой. внешний.это