黑马程序员技术交流社区

标题: 为什么匿名内部类调用的局部变量必须用final修饰? [打印本页]

作者: umbriel    时间: 2015-7-30 23:58
标题: 为什么匿名内部类调用的局部变量必须用final修饰?
如题,之前学的时候就有点概念不清,哪位兄弟给解答下?
作者: kissfrd    时间: 2015-7-31 00:30
楼主记错了吧,是局部内部类。局部内部类如果访问方法中的局部变量,那么这个变量必须用。使因为局部变量在栈内存,会在方法调用完毕后消失;而局部内部类的方法在堆内存,并未消失,所以它访问的局部变量也必须存在,不然就会出错,故而使用final修饰使其成为常量,以延长它的生命周期。

作者: umbriel    时间: 2015-7-31 23:41
大致明白了,匿名内部类和局部内部类调用的局部变量都是要final修饰的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2