匿名类中的方法为什么不能修改外部类的局部变量?
匿名类中的方法为什么不能修改外部类的局部变量?首先局部变量是定义在栈中的,一旦超出其作用范围就立马销毁释放。而匿名类中的方法是跟匿名对象绑定的,通过new实例化,放在堆中,只要java垃圾回收线程不释放它,它就长期存在。因此在匿名类调用外部类的普通局部变量就有可能出错,因为该局部变量可能已经被释放。所以为了能让匿名类也能方便使用外部类中局部变量。java干脆直接把在匿名类中使用的外部类中的局部变量变成final类型,因为final类型为常量也是放在堆中的。这样当匿名类调用该局部变量时,就不会出现