java - Android Studio(增加最终变量)

标签 java android netbeans android-studio

我在 FINAL 变量中遇到问题。
它总是要求我将其声明为 Final,但如果我将其声明为 Final,则它无法递增。

这是我的代码:

 for(int i=0;i<longLat.size();i++) {


            StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    System.out.println(response.toString());
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }) {

                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> parameters = new HashMap<String, String>();
                    /*Im having a problem here because i need to load
                     more than one 'POILongLat' so i put it in arrayList
                     but it keeps asking me to make it final*/
                     parameters.put("POILongLat", longLat.get(i));
                    parameters.put("POIAddress", "Addresses");
                    return parameters;

                }
            };
            requestQueue.add(request);

    }

谢谢!

最佳答案

你可以用这个技巧做到这一点:

for(int i=0;i<longLat.size();i++) {
     final int valueThisIteration = i;
     ....
        parameters.put("POILongLat", longLat.get(valueThisIteration));
     ...
 }

这样,每次迭代中都会有一个新的 final 变量,Java 会很高兴。

它必须是final的原因与Android或Android Studio无关。这是因为您尝试使用 i 值的范围位于完全不同的位置,并且代码在完全不同的时间甚至可能在不同的线程中执行。从那个地方开始,您的 for 循环与 i 可能早已完成。

关于java - Android Studio(增加最终变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32993864/

相关文章:

java - java中的utf-8解码

java - 来自 Fragment 内部适配器的 startActivityForResult

java - 为 Netbeans java 项目创建安装文件

java - 使用动态对象值创建 POJO 模型

java - 当计时器结束时,如何中断用于从套接字接收数据的 while 循环?

java - getter 和 setter 方法的问题

netbeans - 如何增加 NetBeans IDE 的字体大小/字体系列? (不是文本编辑器的字体)

Java EE Netbeans Maven EJB 模块 (MySQL) 错误

java - Libgdx 无法从 jar 文件加载字体

android - 下拉刷新并加载到 ListView 中