Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的匿名内部类获取对封闭类的引用?_Java_Oop - Fatal编程技术网

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

如何从Java中的匿名内部类获取对封闭类的引用?,java,oop,Java,Oop,我目前正在外部类中创建对此的显式引用,以便在匿名内部类中有一个名称可以引用。有更好的方法吗?使用封闭类。这是我最近发现的。使用OuterClassName。此 class Outer { void foo() { new Thread() { public void run() { Outer.this.bar(); } }.start(); } void ba

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

使用
封闭类。这是我最近发现的。使用
OuterClassName。此

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

更新如果您只需要对象本身(而不是调用成员),则
Outer。这是一种方法。

您仍然可以使用Outer.class获取外部类对象的类(它将返回与Outer.this.getClass()相同的类对象,但效率更高)


如果要访问封闭类中的静态,可以使用Outer.name,其中name是静态字段或方法。

谢谢!这困扰我太久了。很高兴答案是快速的谷歌搜索。