



Используйте EnclosingClass.this
Я только что нашел это недавно. Используйте OuterClassName.this.
class Outer {
void foo() {
new Thread() {
public void run() {
Outer.this.bar();
}
}.start();
}
void bar() {
System.out.println("BAR!");
}
}
Обновлено Если вам нужен только сам объект (вместо вызова членов), то Outer.this - это то, что вам нужно.
Вы все еще можете использовать Outer.class для получения класса объекта внешнего класса (который вернет тот же объект класса, что и Outer.this.getClass (), но более эффективен)
Если вы хотите получить доступ к статике во включающем классе, вы можете использовать Outer.name, где name - это статическое поле или метод.
СПАСИБО! Это слишком долго меня беспокоит. Рад, что ответ был быстрым поиском в Google.