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