我正在GWT中做一个程序。这里是林有问题引用内部类中的非最终变量数据
private String[] populateRSSData() {
1==>> String[] data = null;
try {
new RequestBuilder(RequestBuilder.GET,
"../database.php?action=populaterss").sendRequest(null,
new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
2==>> data=response.getText().split("~");
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
}
});
} catch (RequestException e) {
Window.alert(e.getMessage());
}
return data;
}
片断现在出现的问题是,我得到这个变量1==>>
data
应声明final
错误。但是,如果我把它声明为final
然后我不能DATAS存储在2==>>
的错误,我得到
Cannot refer to a non-final variable data inside an inner class defined in a different method RSS_Manager.java
请建议
+1塔希尔是正确的。您的方法将始终返回null,因为异步调用的结果尚未分配......请执行您需要使用onResponseReceived();)中的数据 – Bogdan 2010-06-17 07:30:00
dint从该角度思考。谢谢塔希尔,我需要重新设计结构 – Sam 2010-06-17 07:58:24