146

给定以下代码:

public interface Selectable {
  public void select();
}

public class Container implements Selectable {
  public void select() {
  ...
  }
  public void createAnonymousClass() {
    Selectable s = new Selectable() {
      public void select() {
        //see comment below.
      }
    };
  }
}

我想Container.select()从我的匿名类的select()方法中访问。但是,this.select()会再次调用匿名类的select()方法。

我的建议是:

在 Container 中引入一个字段,例如

private Container self = this;

现在我可以通过从匿名类中Container.select()调用来访问。self.select()

这是一种合理的方式吗?或者有没有更好的方法?

4

2 回答 2

280
Container.this.select();
于 2009-07-05T14:07:47.953 回答
43

您可以写出Container.this.select()与内部类不同的内容!

于 2009-07-05T14:08:30.667 回答