use*_*478 17 java this program-flow
这就是我现在正在做的事情.有没有更好的方式来访问超类?
public class SearchWidget {
private void addWishlistButton() {
final SearchWidget thisWidget = this;
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// A better way to access the super class?
// something like "this.super" ...?
workWithWidget(thisWidget);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Google Web Toolkit进行编程,但我认为这确实是一个通用的Java问题.
pol*_*nts 23
您可以使用所谓的合格this
.
可以通过显式限定关键字来引用任何词汇封闭实例
this
.设C为表示的类
ClassName
.设n是一个整数,使得C是出现限定该表达式的类的第n个词汇封闭类.表单的表达式的值ClassName.this
是(第8.1.3节)的第n个词汇封闭实例this
.类型表达的是Ç.如果当前类不是C类或C本身的内部类,则它是编译时错误.
在这种情况下,您可以执行Martijn建议的操作,并使用:
workWithWidget(SearchWidget.this);
Run Code Online (Sandbox Code Playgroud)
Mar*_*aux 20
您可以编写外部类的名称然后.this
.所以:
workWithWidget(SearchWidget.this);
Run Code Online (Sandbox Code Playgroud)