在局部内部类的方法中如果调用局部内部类所声明的方法中的局部变量,要求此局部变量声明为final
public class InnerClassTest {
public void method(){
int num = 10;
class AA{
public void show(){
num = 20;
System.out.println(num);
}
}
}
}
提示要求我们把num转成一个final数组,这里我们在定义num前面加一个final就行
在jdk7及之前版本:要求此局部变量显示的声明为final的
在jdk8及之后的版本:可以省略final的声明
在Java中,当局部内部类想要访问其所在方法的局部变量时,该变量需要在JDK7及之前版本被显式声明为final。然而,在JDK8及以后的版本,这个限制放宽了,即使不声明为final,编译器也能推断出需求并自动处理。

被折叠的 条评论
为什么被折叠?



