黑马程序员技术交流社区
标题:
关于内部类定义在局部使用外部变量的问题
[打印本页]
作者:
hbcoding
时间:
2015-11-16 16:16
标题:
关于内部类定义在局部使用外部变量的问题
内部类定义在局部时,只能访问被final修饰的局部变量。不然编译就会报错。可是如下程序中,局部变量a并没有用final修饰,为什么编译可以通过,并且可以正常打印出a的值呢?求高手解答。
public class Outer{
public void function(){
int a = 3;
class Inner{
void method(){
System.out.println(a);
}
}
new Inner().method();
}
public static void main(String[] args){
Outer j = new Outer();
j.function();
}
}
复制代码
作者:
hbcoding
时间:
2015-11-17 00:22
已经懂了,是JDK版本的问题,我用的是JDK1.8,即使不加final,编译也会通过,但编译器会默认该变量是final类型的。这也许是新版本的一个bug吧。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2