[英]Usage of a non-final local variable within an inner class
可变i
因为变量i的值不别处改性方法巴兹内部定义是effictively最后。 如果你改变它
void baz(){
int i = 0;
i = 2;
class Bar{ int j = i; }
}
代码将无法编译,因为变量i
不再是有效的最终结果,但如果您只是声明变量i并将其初始化为另一行,则代码将编译,因为该变量是有效的最终
void baz(){
int i;
i = 2;
class Bar{ int j = i; }
}
i
实际上是最终的,因为它永远不会被修改。 正如您自己引用JLS一样,内部类可以有效地使用最终变量。
因为i
在baz
没有改变,所以i
实际上是最终的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.