从Java匿名类访问“this”

时间:2009-07-05 14:03:44

标签: java this anonymous-class

给出以下代码:

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()

这是一种合理的方式吗?还是有更好的方法吗?

2 个答案:

答案 0 :(得分:256)

Container.this.select();

答案 1 :(得分:41)

您可以将Container.this.select()写成与内部类别不同的​​内容!