将变量传递给Java(android)中的嵌套方法并返回它

将变量传递给Java(android)中的嵌套方法并返回它,java,android,Java,Android,您好,我有一个这样的方法,我想要declate'userList'并将其传递给嵌套方法,然后在嵌套方法之外返回它 大概是这样的: private List<User> getUsers() { List<User> userList = new ArrayList<>(); @Override public void onResponse(JSONObject response) { for(int i=0; i < 100; i++)

您好,我有一个这样的方法,我想要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;
}
private List getUsers(){
List userList=new ArrayList();
@凌驾
公共void onResponse(JSONObject响应)
{
对于(int i=0;i<100;i++)
{
...
添加(用户);
}
});
返回用户列表;
}
如何将
userlist
传递给
onResponse(JSONObject response)
,然后在该函数之外返回它

@Override
public void onResponse(JSONObject response) ...
// void return type == cannot return
这意味着您正在实现这个抽象方法(OkHttp/Volley/reformation,随便什么)。因此(技术上)您不能更改它的签名,这意味着您不能从该回调返回任何内容

您只能使用成员变量,将回调方法的结果分配给该变量:

// 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 */
}
//此类的成员变量
List userList=new ArrayList();
@凌驾
公共void onResponse(JSONObject响应){
对于(int i=0;i<100;i++){
//将元素添加到arraylist中
添加(用户);
}
/*就这样,你的arraylist被更新了。现在调用任何需要的方法
应该检索此回调的结果(arraylist)*/
}