局部内部类访问局部变量的问题

Posted afei1013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了局部内部类访问局部变量的问题相关的知识,希望对你有一定的参考价值。

局部内部类访问局部变量的注意事项:

 局部变量必须用final修饰!

为什么?
   因为局部变量是随着方法的调用而调用,随着调用完毕而消失

  但是我们调用内部类时创建的对象依旧在堆内存中,并没有被回收,如果访问的局部变量不是用final修饰的,就是当方法调用完毕后,依旧存在于堆内存中的对象找不到局部变量的问题

  而此时被final修饰的变量可以看成是一个常量,存在于常量池中,不会被立刻回收。

以上是关于局部内部类访问局部变量的问题的主要内容,如果未能解决你的问题,请参考以下文章

java9-8 局部内部类

在方法中定义的内部类称为局部内部类

局部内部类的成员变量被final修饰才能被局部内部类的方法所访问

Java面向对象(OOP)--内部类(局部内部类)

局部内部类访问它所在方法的局部变量时,要求该局部变量必须声明为final的原因

局部内部类详解