java - 在内部类中访问变量 "name"。需要声明为final

标签 java

所以标题说明了一切。我的 JsonObjectRequest 中出现编译错误

我确定这是一个非常简单的修复程序,但我不确定如何编写它。我仍处于 android 开发的早期阶段,所以请原谅我的菜鸟。 :)

这是代码。

public class Api {

public static final String SEARCH_URL = "http://api.worldoftanks.ru/2.0/account/list/?application_id=171745d21f7f98fd8878771da1000a31&search=";
private RequestQueue mQueue;
private ArrayList<String> mNames;

public Api(Context context) {
    mQueue = Volley.newRequestQueue(context);
}

public ArrayList<String> searchPlayer(String name) {


    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, SEARCH_URL + name, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject json) {

            try {
                JSONArray data = json.getJSONArray("data");
                for (int i = 0; i < data.length(); i++) {
                    JSONObject c = data.getJSONObject(i);

                    String n = name.getString("nickname");
                    mNames.add(n);
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }


        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error", error.getMessage());
        }
    }
    );

    mQueue.add(jsonObjectRequest);
    return mNames;
}

最佳答案

如错误所说,替换

public ArrayList<String> searchPlayer(String name)

public ArrayList<String> searchPlayer(final String name)

参数必须声明为 final 以确保它永远不会被方法内部的代码更改,因此可以在响应监听器中安全地使用。

关于java - 在内部类中访问变量 "name"。需要声明为final,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875490/

相关文章:

java - 每个字符串都作为 SecretKeySpec 的参数?

java - String.replaceAll() 替换所有字符而不仅仅是正则表达式。 - java

java - 解析.com : Deploy app with local DB

java - Kafka生产者拦截器

exception - 与其他库一起创建库 jar

java - 使用 Companies House XML 网关搜索公司名称可用性

java - umano android slidinguppanel 2 views as sliding child 遇到麻烦

java - 如何使用 EWS 托管 API 和 ColdFusion 搜索收件箱?

java - WSDL2Java 不会创建所有 stub

java - 将 CharArray 传递给方法