如何从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是静态字段或方法。谢谢!这困扰我太久了。很高兴答案是快速的谷歌搜索。