为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要加final? final StringBuffer sb = new StringBuffer();

 final StringBuffer sb = new StringBuffer();

7分47秒老师改成final,也没说为什么

正在回答

2 回答

局部内部类(包括匿名局部内部类和普通内部类)中使用局部变量,那么这个局部变量必须使用final修饰。这里说的是局部内部类,不是普通静态内部类和非静态内部类,因为他们不能访问方法体内的局部变量。  
java要求所有被局部内部类访问的局部变量都是用final修饰,是因为:对于普通局部变量他的作用域就是该方法内,当方法结束该局部变量就随之消失;但局部内部类可能产生隐式的“闭包”,闭包将使得局部变量脱离他所在的方法继续存在。由于内部类可能扩大局部变量的作用域,如果再加上这个被内部类访问的局部变量没有使用final修饰,也就是说这个变量的值可以随时改变,那将引起极大的混乱,因此java编译器要求所有被内部类访问的局部变量必须使用final修饰符修饰。 

3 回复 有任何疑惑可以回复我~

视屏我没看,但估计是因为内部类需要用到这个变量

0 回复 有任何疑惑可以回复我~
#1

烟雨谣 提问者

上句是开玩笑了。你说的对,但我看不懂啊。详细的在下面。
2015-09-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android中的Http通信
  • 参与学习       64653    人
  • 解答问题       347    个

了解Android-http网络编程应用,常见忘了请求相关应用

进入课程

为什么要加final? final StringBuffer sb = new StringBuffer();

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号