如果我在方法内定义的 局部变量
需要在其中定义的 内部类
中使用,为什么需要将其声明为 final
?
例如:
class MyOuter2 {
private String x = "Outer2";
void doStuff() {
final String y = "Hello World";
final class MyInner {
String z = y;
public void seeOuter() {
System.out.println("Outer x is "+x);
System.out.println("Local variable is "+y);
MyInner mi = new MyInner();
mi.seeOuter();
}
}
}
为什么字符串 y
需要是一个 final 常量?这对代码有什么影响吗?