从 Java 匿名类访问“this”

2022-08-31 07:46:00

给定以下代码:

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

我的建议是:

将字段引入容器,例如

private Container self = this;

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

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


答案 1
Container.this.select();

答案 2

你可以写到与内部类不同!Container.this.select()