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

Bil*_*ard 51 java oop

我正在外部类中创建一个显式引用,以便在匿名内部类中有一个名称可以引用.有一个更好的方法吗?

Fra*_*ger 89

我刚刚发现了这个.使用OuterClassName.this.

class Outer {
    void foo() {
        new Thread() {
            public void run() {
                Outer.this.bar();
            }
        }.start();
    }
    void bar() {
        System.out.println("BAR!");
    }
}
Run Code Online (Sandbox Code Playgroud)

更新如果您只想要对象本身(而不是调用成员),那么Outer.this就是要走的路.


Joh*_*ley 20

使用 EnclosingClass.this