你怎么得到一个参考的封闭类从一个匿名内部流Java?[重复]

StackOverflow https://stackoverflow.com/questions/31201

  •  09-06-2019
  •  | 
  •  

这个问题已经有一个答案在这里:

目前,我正在创造一个有明确提到这一外流,这样我有一个名称提到的匿名内部流的。有没有更好的方式做到这一点?

有帮助吗?

解决方案

我刚刚发现这个的最近。使用 OuterClassName.this.

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

更新 如果你只是想要的目的本身(而不是援引成员),然后 Outer.this 是的路要走。

其他提示

使用 EnclosingClass.this

你仍然可以使用Outer.class 要获得该类别的外流的对象(其将返回的同类物以外。这一点。getClass()但是效率更高)

如果你想要访问静态的封闭类,可以使用外。名称是静态的领域或方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top