[英]How to refer to non final variable “out” from inside class?
I have seen questions related to the topic, but i couldn't find a satisfactory answer. 我已经看到了与该主题相关的问题,但我找不到满意的答案。 Please help me with my JSP code:
请帮助我使用我的JSP代码:
<%
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
Future<Integer> f = asyncHttpClient.prepareGet("http://www.ning.com/")
.execute(new AsyncCompletionHandler<Integer>(){
public STATE onStatusReceived(HttpResponseStatus respstat)throws Exception{
***//error occurs in next line***
out.println(respstat.getStatusText());
return STATE.CONTINUE;
}
@Override
public Integer onCompleted(Response response) throws Exception{
// Do something with the Response
out.println(response.getStatusCode());
return response.getStatusCode();
}
@Override
public void onThrowable(Throwable t){
// Something wrong happened.
}
});
%>
since out is a jsp variable, i cant define it as a final as well. 因为out是一个jsp变量,所以我也不能将它定义为final。 What do i do in this case?
在这种情况下我该怎么办?
Thanks 谢谢
<%
final ServletOutputStream finalOut = out; // create final reference
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
Future<Integer> f = asyncHttpClient.prepareGet("http://www.ning.com/")
.execute(new AsyncCompletionHandler<Integer>(){
public STATE onStatusReceived(HttpResponseStatus respstat)throws Exception{
***//error occurs in next line***
finalOut.println(respstat.getStatusText()); //use final reference
return STATE.CONTINUE;
}
@Override
public Integer onCompleted(Response response) throws Exception{
// Do something with the Response
out.println(response.getStatusCode());
return response.getStatusCode();
}
@Override
public void onThrowable(Throwable t){
// Something wrong happened.
}
});
%>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.