Как уже упоминалось в другом ответе, уловка this
затенена.Другой способ обойти это - добавить метод во внешний класс, который возвращает this
.
. Он понимает, что это немного портит сигнатуру класса, но если вы оставите метод закрытым, этоне кажется большим делом.У кого-нибудь есть комментарии о том, как это лучше или хуже, чем другие решения?
public MyOuterClass {
private MyOuterClass getThis() {
return this;
}
private void outerClassMethod(new MyAnonymousClass() {
public void anonymousClassMethod() {
doSomething(getThis());
}
});
}