至于为什么匿名内部类引用的局部变量一定要加final,主要还是和两者的生命周期有关。局部变量在方法中,方法调用完毕即弹栈,会从内存消失。而匿名内部类的实例是在堆中,在未来某个时刻被垃圾回收。这就会出现一个情况:一个实例持有一个已经不存在的变量引用...对象的生命周期无法改变,所以只能是局部变量做出让步 发布于...