您好我有这样的方法,我想要declate'userList'并将其传递给嵌套方法,然后将其返回到该嵌套方法之外。
类似的东西:
private List<User> getUsers() {
List<User> userList = new ArrayList<>();
@Override
public void onResponse(JSONObject response)
{
for(int i=0; i < 100; i++)
{
...
userList.add(user);
}
});
return userList;
}
如何将userlist
传递给onResponse(JSONObject response)
,然后将其返回到该函数之外?
答案 0 :(得分:2)
@Override
public void onResponse(JSONObject response) ...
// void return type == cannot return
意味着您正在实现这个抽象方法(OkHttp / Volley / Retrofit,无论如何)。因此(技术上)您无法更改其签名,这意味着您无法从此回调中返回任何内容。
您唯一能做的就是使用成员变量,您将为其分配来自回调方法的结果:
// Member variable of this class
List<User> userList = new ArrayList<>();
@Override
public void onResponse(JSONObject response) {
for (int i = 0; i < 100; i++) {
// Add elements to your arraylist
userList.add(user);
}
/* That's it, your arraylist is updated. Now call whatever method that
was supposed to retrieve the result (the arraylist) of this callback */
}