Как может “это” внешнего класса быть полученным доступ от внутреннего класса?

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

т.е.

class Outer {

  void aMethod() {

    NewClass newClass = new NewClass() {
      void bMethod() {
        // How to I get access to "this" (pointing to outer) from here?
      }
    };
  }
}
67
задан skiphoppy 25 June 2015 в 18:36
поделиться

4 ответа

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

Outer.this
88
ответ дан 24 November 2019 в 14:36
поделиться

Внешний. Это

т.е.

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

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

31
ответ дан 24 November 2019 в 14:36
поделиться

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

2
ответ дан 24 November 2019 в 14:36
поделиться

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

outer.this
8
ответ дан 24 November 2019 в 14:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: