前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lambda expresssion 与 AutomicReference的结合使用

Lambda expresssion 与 AutomicReference的结合使用

作者头像
MickyInvQ
发布2020-09-27 10:22:18
8480
发布2020-09-27 10:22:18
举报
文章被收录于专栏:InvQ的专栏

比如,想在foreach这个循环中,来更新lambda表达式外面的一个变量,此时会报错 variable used in lambda expression should be final or effictively final 。

在这里插入图片描述
在这里插入图片描述

没错,我们知道在Java中,是不允许在lambda还有匿名内部类中使用 非final 类型的变量。

( 对于匿名内部类的使用它是存在一个缺陷的,就是它仅能被使用一次,创建匿名内部类时它会立即创建一个该类的实例,该类的定义会立即消失,所以匿名内部类是不能够被重复使用。对于上面的实例,如果我们需要对test()方法里面内部类进行多次使用,建议重新定义类,而不是使用匿名内部类。)

简单来说明下原因就是:

The restriction to effectively final variables prohibits access to dynamically-changing local variables, whose capture would likely introduce concurrency problems.

能够避免局部变量的改变,进而可能会导致并发问题的出现。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档