如何从 Java 中的匿名内部类获取对封闭类的引用?

2022-08-31 20:27:55

我目前正在外部类中创建对此的显式引用,以便我有一个名称可以在匿名内部类中引用。有没有更好的方法来做到这一点?


答案 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