public class InnerClassFinalVar {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InnerClassFinalVar icfv = new InnerClassFinalVar();
}
int i = 10;
void setMValue(){
final int m = 0; //这里必须是final
class D{
void setMValue(){
//m = 11;
//因为如果m不是final的话,内部类就可以改变m的值
//外部类的m值是不会改变的,这样就出现了多值的情况,这是不允许的。
}
}
new D().setMValue();
}
}
局部变量必须是最终的,以避免内部类改动变量值。