GWT에서 서블릿을 코딩 중이며 함수에서 전역 변수로 선언 된 데이터의 내용을 실제로 이해하지 못합니다. 동적 함수 선언에 변수를 사용하는 것과 관련된 일반적인 Java 문제 일 수도 있지만 이에 대한 답을 찾을 수 없습니다. 메소드 선언으로 변수에 액세스하기
이
내 코드입니다 :private AbstractDataTable fetchDataFromServer() {
final DataTable data = DataTable.create();
System.out.println("1 Table has " + data.getNumberOfColumns() + " columns");
System.out.println("1 Table has " + data.getNumberOfRows() + " rows");
try {
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, "/mongo.json");
rb.setCallback(new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
JSONValue value = JSONParser.parse(response.getText());
JSONObject productsObj = value.isObject();
JSONArray radiation = productsObj.get("ShortWave_Rad").isArray();
if (radiation != null) {
data.addColumn(ColumnType.NUMBER, "Horizon");
data.addColumn(ColumnType.NUMBER, "Value");
System.out.println("Values " + radiation.size());
for (int i=0; i<=radiation.size()-1; i++) {
JSONObject productObj = radiation.get(i).isObject();
data.addRows(radiation.size());
data.setValue(i, 0, productObj.get("horizon").isNumber().doubleValue());
data.setValue(i, 1, productObj.get("value").isNumber().doubleValue());
}
System.out.println("2 Table has " + data.getNumberOfColumns() + " columns");
System.out.println("2 Table has " + data.getNumberOfRows() + " rows");
}
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert("Error occurred" + exception.getMessage());
}
});
rb.send();
}
catch (RequestException e) {
Window.alert("Error occurred" + e.getMessage());
}
System.out.println("3 Table has " + data.getNumberOfColumns() + " columns");
System.out.println("3 Table has " + data.getNumberOfRows() + " rows");
return data;
}
그리고 이것은 내가 얻을 출력 :
1 표가 0 colums
1 표가
2 표 2를 가지고 0 행
칼럼2 표 10 행
3 표 0 colums
있다3 표가 0 행 onResponseReceived 선언이 그것을 사용 후 데이터의 내용이 갔다 않았다
?많은 도움에 감사드립니다.
예상되는 출력은 무엇이며, 얻은 결과와 어떻게 다릅니 까? –