A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Java好久不见 中级黑马   /  2016-6-23 20:18  /  389 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java为什么匿名内部类的参数引用时final 反而会报错?

6 个回复

倒序浏览
事实上,除了匿名内部类内部,方法和作用域内的内部类内部使用的外部变量也必须是 final 的。原因如下:
内部类会自动拷贝外部变量的引用,为了避免:1. 外部方法修改引用,而导致内部类得到的引用值不一致 2.内部类修改引用,而导致外部方法的参数值在修改前和修改后不一致。于是就用 final 来让该引用不可改变。
回复 使用道具 举报
学习,努力加油!
回复 使用道具 举报
L1ub0w3n 发表于 2016-6-23 21:26
事实上,除了匿名内部类内部,方法和作用域内的内部类内部使用的外部变量也必须是 final 的。原因如下:
内 ...

谢谢,
回复 使用道具 举报
我想给你解答,但是我不会
回复 使用道具 举报
他的好 发表于 2016-6-23 22:51
我想给你解答,但是我不会

一起加油,
回复 使用道具 举报
学习了 !!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马