访问“此” 来自 Java 匿名类
给出以下代码:
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()
。
这是一个合理的方式吗? 或者还有什么更好的方法吗?
Given the following code:
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.
}
};
}
}
I want to access Container.select()
from within my anonymous class' select()
method. However, this.select()
would again call the anonymous class' select()
method.
My suggestion would be:
Introduce a field into Container, e.g.
private Container self = this;
Now I can access Container.select()
by calling self.select()
from within the anonymous class.
Is this a reasonable way? Or are there any better ways?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以编写
Container.this.select()
以区别于内部类!You can write
Container.this.select()
to distinct from the inner class !