还有一点就是,局部内部类调用局部变量时, 局部变量需要变final的修饰,- public class ThreadDemo {
- void method()
- {
- final int b=9;
- class A
- {
- void B()
- {
- System.out.println(b);
- }
- }
- }
- }
复制代码 因为对象的生命周期会超过局部变量的生命周期的,所有被final修饰的局部变量可以被该局部内部类访问, 主要是将所有的局部内部类对象要访问的final型局部变量,变成该内部类对象中的一个数据成员。这样,即使栈中局部变量(含final)已死亡,但由于它是final,其值永不变, 因而局部内部类对象在变量死亡后,照样可以访问final型局部变量。 |