黑马程序员技术交流社区
标题:
内部类
[打印本页]
作者:
狼王
时间:
2013-7-6 14:20
标题:
内部类
本帖最后由 杨兴庭 于 2013-7-7 22:50 编辑
为什么匿名内部类参数必须为final类型
作者:
草貌路飞
时间:
2013-7-6 19:24
不只是匿名内部类是这样,局部内部类也是这样的。而且不只是作为参数是这样,只要匿名内部类和局部内部类想要访问它所在局部内的局部变量都要定义成final的。这是原因 http://blog.csdn.net/salahg/article/details/7529091
作者:
狼王
时间:
2013-7-7 06:40
草貌路飞 发表于 2013-7-6 19:24
不只是匿名内部类是这样,局部内部类也是这样的。而且不只是作为参数是这样,只要匿名内部类和局部内部类想 ...
谢谢你的解答,我也看了那篇文章,但没看懂。。。。
作者:
lipingan0520
时间:
2013-7-7 07:35
你要知道被final过的变量是一个常量,它虽着类的加载一直存在常量区中,生命周期很长
既始该常量的方法已经结束,这常量还是存在常量区中,不会消失。
只要该内部内,在栈内存中还有引用,实体就还存在堆中,不会消失。方法一但调用结束,在内存中就会释放,
这就是方法中的变量为什么要final的原因,因为很有可能被内部内使用,就是因为生命周期不同。
作者:
杨兴庭
时间:
2013-7-7 22:49
楼主您好,我已将您帖子的状态改成“已解决”,对此如有疑问可以通过QQ632763270和我取得联系
-------------------坚持学习,黑马因你而精彩---------------
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2