Недавно я столкнулся с загадочной проблемой в проекте андроида, который я описал here. Я как-то решил проблему, но до сих пор не знаю точной причины этого.Java: вызов метода внешнего класса в анонимном внутреннем классе
Предположим, что я хочу вызвать функцию foo() во внутреннем классе. Вопрос заключается в том, что разница между вызовом непосредственно как
foo();
или называя его с внешним экземпляра класса
OuterClass.this.foo();
Кроме того, я буду признателен, если кто-нибудь может проверить мои последние question связанные с этим, и дайте мне понять, почему возникает ошибка. Большое спасибо.
PS: Я где-то читал, что нестатический внутренний класс всегда будет содержать экземпляр внешнего класса. Таким образом, он будет вызывать внешнюю функцию, используя этот экземпляр, если я использую только foo()?
Thx. Но я уверен, что внутренний класс не имеет функции с тем же именем в моем случае. Есть ли другая конкретная разница, кроме явной части? – Selkie
Не в этом контексте. Я посмотрел на вопрос ваших источников и тот факт, что сделанное вами изменение решило его необъяснимым. Это не должно было произойти вообще. Выполнение этого - это просто очистить любые двусмысленности в том, что вы имеете в виду ... –
вы правы. Я допустил ошибку. Спасибо за просветление! – Selkie