gpt4 book ai didi

java - Volley :Cannot refer to the non-final local variable in android

转载 作者:行者123 更新时间:2023-12-01 09:32:46 25 4
gpt4 key购买 nike

我有以下方法,它使用 Volley 提交 http 请求:

private boolean SaveInformationToServer(Information information)
{

RequestQueue queue = Volley.newRequestQueue(this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
return true;
}
catch (Exception ex){
return false;
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
return false;
}
});

queue.add(stringRequest);
}

我要求此方法返回 truefalse,但目前它给出错误 void 方法无法返回值。我尝试了一个变量,然后我得到无法引用内部类中的非最终局部变量

如何让此方法向其调用者返回一个 boolean 值?

最佳答案

onResponse 的返回类型是 void,而且它是匿名类的函数,因此您无法将匿名类的值返回给 volley 请求的调用者。

您可以创建可以在 Volley 响应中调用它们的函数,并让您的代码执行结果而不是保留标志,这将使您的代码更具结构性和可读性(您也可以在 onSuccess 中设置标志)。

void onSuccess(String response){
// do what you want to do
}
void onError(VolleyError error){
// do what you want to do
}
private void SaveInformationToServer(Information information)
{

RequestQueue queue = Volley.newRequestQueue(this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
onSuccess(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
onError(error);
}
});

queue.add(stringRequest);
}

关于java - Volley :Cannot refer to the non-final local variable in android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39267215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com