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

时间:2016-01-26 21:55:16

标签: 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++)
    {
        ...
        userList.add(user);
    }
});
return userList;
}

如何将userlist传递给onResponse(JSONObject response),然后将其返回到该函数之外?

1 个答案:

答案 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 */
}
相关问题