从Java匿名类访问“this”
给出以下代码:
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()
方法。
我的build议是:
在Container中引入一个字段,例如
private Container self = this;
现在我可以通过在匿名类中调用self.select()
来访问Container.select()
。
这是一个合理的方式? 还是有更好的办法?
Container.this.select();
您可以编写Container.this.select()
以区别于内部类!