匿名内部类使用外部变量为什么用 final 修饰
事实上, 匿名内部类使用外部变量时, 因为匿名内部类和外部变量的生命周期不同, 此时匿名内部类中的该变量其实是原来变量的副本方法内的外部变量作用域: 当前方法匿名内部类引用外部变量作用域: 匿名内部类的方法由此可见, 作用域不同, 即生命周期不同如果不使用 final 修饰外部变量, 那么在匿名内部类中修改变量引用时, 就会产生歧义, 好像在匿名内部类中可以修改已经不在作用域的外部变量, 然后外部变量的生命周期已经结束@Test public void test() { // 外