楼主看看下面这段程序就明白了 public class Test{ public void test(){ int i=0; class Inner{ void test2(){ i=4; } } } public static void main(String args[]){ Test test=new Test(); test.test(); } } 上面这段程序编译是无法通过的,因为内部类引用了方法test中的i,而i不是声明为final,是无法引用的,你改成final int i=0;即可
public class Test{
public void test(){
int i=0;
class Inner{
void test2(){
i=4;
}
}
}
public static void main(String args[]){
Test test=new Test();
test.test();
}
}
上面这段程序编译是无法通过的,因为内部类引用了方法test中的i,而i不是声明为final,是无法引用的,你改成final int i=0;即可
在方法的内部类中要使用方法中的局部变量(包括方法的参数),必须声明为final
http://community.csdn.net/Expert/topic/4668/4668977.xml?temp=.6765253