首页 文章

从Java匿名类访问“this”

提问于
浏览
130

给出以下代码:

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.
      }
    };
  }
}

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

我的建议是:

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

private Container self = this;

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

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

2 回答

  • 249
    Container.this.select();
    
  • 41

    你可以写 Container.this.select() 来区别于内部类!

相关问题