注意:我不是在谈论从内部类访问封闭类的方式,这根本不是问题。我要说的是:
class TopLevel {
class InnerClass {
}
}
// in some other class A.java
public void execute(InnerClass ic) {
}
在这里,在
execute()
方法中,我们将 InnerClass
的实例作为参数传递。所以我真正想要的是 访问 Enclosing
类的实例,在该类中创建了传递给 InnerClass
的 execute()
实例。
如何实现这一目标?
没有标准的方法来做到这一点。
您需要添加将外部类返回到内部类的方法。
我找到了一个非常好的解决方案。如果您有权访问源代码,那么这样的事情是可能的:
class TopLevel {
class InnerClass {
// just declare the method that exposes the enclosing instance
public TopLevel getEnclosing() {
return TopLevel.this;
}
}
}
// in some other class A.java
public void execute(InnerClass ic) {
ic.getEnclosing().doSomething();
}