局部内部类访问局部变量的注意事项:
局部变量必须用final修饰!
为什么?
因为局部变量是随着方法的调用而调用,随着调用完毕而消失
但是我们调用内部类时创建的对象依旧在堆内存中,并没有被回收,如果访问的局部变量不是用final修饰的,就是当方法调用完毕后,依旧存在于堆内存中的对象找不到局部变量的问题
而此时被final修饰的变量可以看成是一个常量,存在于常量池中,不会被立刻回收。
注意:但是在jdk1.8之后,可以不用加final修饰了,因为,jdk1.8之后,即使你不加也会默认加上的。