为什么匿名内部类参数必须为final类型
来源:互联网 发布:凡游网络 编辑:程序博客网 时间:2024/05/16 09:51
首先,这关系到java对象中的生命周期的问题。
基础数据类型和引用变量(不是被引用的对象)做局部变量时(这里是和做为变量成员变量区别,它们作为成员变量后就作为对象的一部分和对象的生命周期相同了);它们的生命中周期是有作用域的,它没有受生命周期影响这一说,但是同样在这一作用域创建的对象的生命周期并不受作用域的限制。
局部变量的生命周期与局部内部类的对象的生命周期的不一致。
内部类里面使用外部类的局部变量时,其实就是内部类的对象在使用它,内部类对象生命周期中都可能调用它,而内部类试图访问外部方法中的局部变量时,外部方法的局部变量很可能已经不存在了,那么就得延续其生命,拷贝到内部类中,而拷贝会带来不一致性,从而需要使用final声明保证一致性。
复制保证生命周期延续,final保证引用一致。
0 0
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 为什么匿名内部类参数必须为final类型
- 阿里云计算资深总监唐洪:飞天大规模分布式计算系统解析
- java发送http的get、post请求
- eclipse 提交代码到 git
- C#中网页文件下载——HttpWebRequest与HttpWebResponse的使用方法
- 合金的力量
- 为什么匿名内部类参数必须为final类型
- POJ 1422 Air Raid(二分图匹配最小路径覆盖)
- Maven管理多模块项目
- MyReport演示下载连接和相关文章索引
- 开启SSH服务
- 深圳PHP软件开发 汉林学苑常年招生中 包高薪就业
- 成为技术达人之路——(1)
- 安装Ubuntu 14.04后要做的5件事情
- 休息的艺术