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 }
我的问题是,为什么我需要做最后的决定,如果我宣布它是全球性的,会发生什么
请帮我澄清一下
提前谢谢
# 1 楼答案
无论您在哪里声明它,它都需要是
final
。像这样使用循环索引的方法是使用第二个变量# 2 楼答案
我认为你把它误认为是一个匿名的内部类。看看这个stackoverflowanswer