问题
给出以下代码:
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.
}
};
}
}
我想从我的匿名class'select()
方法中访问Container.select()
。但是,this.select()
将再次调用匿名类'select()
方法。
我的建议是:
在Container中引入一个字段,例如
private Container self = this;
现在我可以从匿名类中调用41754107来访问Container.select()
。
这是一种合理的方式吗?还是有更好的方法吗?
#1 热门回答(243 赞)
Container.this.select();
#2 热门回答(40 赞)
你可以写Container.this.select()
来区别于内部阶级!