Java: вызов метода внешнего класса в анонимном внутреннем классе

Недавно я столкнулся с загадочной проблемой в проекте Android, который я описал здесь . Я как-то решил проблему, но до сих пор не знаю точной причины.

Допустим, я хочу вызвать функцию foo () во внутреннем классе. Вопрос в том, в чем разница между прямым вызовом типа

foo();

или вызовом с помощью экземпляра внешнего класса

OuterClass.this.foo();

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

PS: Я где-то читал, что нестатический внутренний класс всегда будет содержать экземпляр внешнего класса. Таким образом, он вызовет внешнюю функцию, используя этот экземпляр, если я использую только foo ()?

19
задан Community 23 May 2017 в 12:00
поделиться