从之前的StackOverflow讨论中,我知道在构造函数返回之前传递 this 是不可取的。
但是如果我们将 this 传递给内部类的构造函数呢?由于内部类已经有一个隐含的 this 指向外部类的指针,显式传递这个仍然是个问题吗?
一个真实的例子是Apache Helix(here)。
基本上它正在做:
public class Outer
{
public Outer() {
new Thread(new Inner(this)).start();
}
class Inner implements Runnable {
private Outer outer;
Inner(Outer outer) {
this.outer = outer;
}
public void run() {
//some logic
}
}
}