对于fun里面而言,就不同了,在整个fun期间,aa不可变,另外final还会改变变量的生命周期,参考内部类,interface X {void x();}
.....
X getX(final int x) {
int nonFinal = 0;
return new X() {
public void x() {
System.out.println(x);
}
};
//<<--- Death of nonFinal
}void a() {
X xObj = getX(0);
xObj.x(); // <<---Variable X Still Alive!
}
.....
X getX(final int x) {
int nonFinal = 0;
return new X() {
public void x() {
System.out.println(x);
}
};
//<<--- Death of nonFinal
}void a() {
X xObj = getX(0);
xObj.x(); // <<---Variable X Still Alive!
}
shine333(enihs)说的关键在于这一句
System.out.println(x);我没有注意到,抱歉