//不能!因为虚拟机不支持会报错。
//除非用final修饰
class Outer{
void method(){
@SuppressWarnings("unused")
//int y=4; 如此定义局部变量时,编译无法通过,提示必须使用final修饰
final int y=4;
class Inner{
void function(){
System.out.println(y);
}
}
new Inner().function();
}
}
这里有个疑问那就是为什么虚拟机不支持?
我在网上找了很多关于这个问题的答案,通篇代码下来都是最后验证到虚拟机不支持这一步上
而没有验证为什么虚拟机不支持的这一步。
按理说这样回答就可以了,但是我总感觉回答的有点残缺,就像把问题推卸到了虚拟机上,
但是到底为什么却依然不明白,所以我想知道到底为什么不可以呢?
希望回答的朋友能具体说明下,如果发代码最好能讲解一下,
如果代码只是验证到虚拟机不支持这一步上的话,就不必发了
真心求讲解,奖励50金币
|