有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java变量“i”作为最终变量

我问这个问题是为了澄清

我有一个for循环,里面有一些内部方法。 当我在这个内部方法中使用“I”时,IDE一直要求我将它设置为最终的“I”

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

     some innermethodcode(){
     Log.e("array",""+array.get(i)); // it says me make it final;

    }

如果我宣布“我”是全球性的,会发生什么

int i ;

); 或者如果我宣布“我”为

int i = 0;

并将其用作

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

         some innermethodcode(){
         Log.e("array",""+array.get(i)); // it says me make it final;

        }

它是否会导致完全不可预测的“i”值,因为使用它的位置不会在循环运行的同时执行

编辑

我非常了解如何从循环变量中获取最终变量,如下所示:

for (int i = 0; i < 10; i++) {
    final int j = i;
    // now you can use j instead
}

我的问题是,为什么我需要做最后的决定,如果我宣布它是全球性的,会发生什么

请帮我澄清一下

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    无论您在哪里声明它,它都需要是final。像这样使用循环索引的方法是使用第二个变量

    for (int i = 0; i < 10; i++) {
        final int j = i;
        // now you can use j instead
    }
    
  2. # 2 楼答案

    我认为你把它误认为是一个匿名的内部类。看看这个stackoverflowanswer