在本教程https://developers.google.com/web-toolkit/doc/latest/tutorial/RPC中,提到要设置回调对象,必须执行以下操作:
// Set up the callback object.
AsyncCallback<StockPrice[]> callback = new AsyncCallback<StockPrice[]>() {
public void onFailure(Throwable caught) {
// TODO: Do something with errors.
}
public void onSuccess(StockPrice[] result) {
updateTable(result);
}
};
但是我注意到AsyncCallback是一个接口。据我所知,接口无法实例化。这怎么可能?
最佳答案
这是使用匿名类在Java中实现回调的示例。这等效于定义实现该接口的类。为了澄清,这是:
new AsyncCallback() {
...
}
等效于此:
public class MyCallback implements AsyncCallback {
...
}
实际上,如果愿意,您可以在单独的Java文件中创建自己的
class
,将其命名为MyCallback
,然后执行以下操作:AsyncCallback<StockPrice[]> callback = new MyCallback();
这都一样。
关于java - 为什么在GWT中实例化接口(interface)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10320868/