今天,在项目中使用lambda表达式遇到了一个问题:

Copy 'standDatasMap' to effectively final temp variable

翻译过来就是:xxxx使用有效的最终变量。

那什么意思呢?

大家先看一下,lambda表达式的规则:

  1. 只能引用标记了 final 的外层局部变量,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。
  2. 局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义)
  3. 不允许声明一个与局部变量同名的参数或者局部变量。

给大家写个例子,简单情景再现下:

原因:

这是因为lambda表达式不接受动态传参。

修改如下:


我们可以加一个map,用来接收动态参数,即可解决此问题。

Copy ‘XXXX‘ to effectively final temp variable相关推荐

  1. java增加final,Java8增加功能--Effectively final 功能

    java8新增了很多功能,可以大大简化代码,这个系列将会一一辅助代码加以介绍. 局部内部类和匿名内部类访问的局部变量必须由final修饰,java8开始,可以不加final修饰符,由系统默认添加.ja ...

  2. java中的final关键字和effectively final

    我们在给lamda传参数时,可能会出现如下情况: Variable used in lambda expression should be final or effectively final 一般情 ...

  3. 1.20 Java8新特性:Effectively final

    Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性.但从 Java 8 开始,我们可以不加 final 修饰符,由系统默认添加,当然这在 Jav ...

  4. Java8新特性:等同 final 效果(Effectively Final)

    闭包 Effectively Final 示例 闭包 闭包就是能够读取函数作用域之外的变量的函数. 考虑一个返回复杂的 lambda 的高阶函数,使用了函数作用域之外的变量,返回该函数会发生什么? j ...

  5. java 8新特性之effectively final

    我们平时使用内部类时,如果需要使用外部的变量,只能通过final关键字来修饰该变量,在java8中,有了新的处理方式,如下: 针对于jdk1.8,对于一个变量,如果没有给它加final修饰,而且没有对 ...

  6. The final local variable xxx cannot be assigned, since it is defined in an enclo

     本文就自己编程时候遇到的一个问题,简要描述一下,并提出解决的方法: 出错信息:The final local variable xxx cannot be assigned, since it is ...

  7. 深入浅出理解 Variable used in lambda expression should be final or effectively final

    翻译:lambda 表达式中使用的变量应该是 final 或者有效的 final 原因解析:lambda表达式(多用在线程领域),是由匿名内部类演变来的. 匿名内部类产生的对象一般存放在JVM的堆区域 ...

  8. foreach无法给外部变量赋值(Local variable decimal defined in an enclosing scope must be final or effectively )

    报错信息如下: Local variable decimal defined in an enclosing scope must be final or effectively final 原因:在 ...

  9. 终于明白 Java 为什么要加 final 关键字了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/epfKR 现象描述 原因分析 ...

  10. 什么场景要用@bean_终于明白为什么要加 final 关键字了!

    作者:guanpjhttp://www.jianshu.com/p/acc8d9a67d0c 在开发过程中,由于习惯的原因,我们可能对某种编程语言的一些特性习以为常,特别是只用一种语言作为日常开发的情 ...

最新文章

  1. lab2_selenium测试
  2. APM - 零侵入监控JDBC服务
  3. ECMAScript数据属性和访问器属性
  4. Scala语言编译之后生成的Java代码解读
  5. java 4位数,java 找出4位数的所有吸血鬼数字
  6. 大一的一些心得与近况
  7. Silverlight/WPF/WP7一周学习导读(12月6-12月12)
  8. 计算机辅助几何设计等值曲线,中国科学技术大学硕士专业:计算机辅助几何设计...
  9. 研磨设计模式读书笔记
  10. ncm转MP3的工具
  11. 用Python绘制一个简单的奥运五环
  12. pow是什么意思python,python中pow什么意思
  13. 携程Java后台开发面经
  14. PT 系列 00·小谈 pt-kill
  15. 文本分割之垂直投影法基于OpenCV(python)的实现
  16. 互联网晚报 | 07月02日 星期六 | ​​​北京健康宝核酸检测天数计算规则调整;​上海鼓励用人单位吸纳失业3个月及以上人员...
  17. 汉语言文学专业c学校,理科生能报汉语言文学专业吗?哪些学校找理科生
  18. 政府补贴政策这么多,ITSS信息技术服务标准到底是什么?
  19. php怎么爬取亚马逊的数据,php 抓取亚马逊中国产品数据-标题,价格,首图片
  20. WordPress主题添加鼠标点击特效

热门文章

  1. 基于java的学生社团管理系统的研究设计计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  2. Pollard-Rho Algorithm简述
  3. 人生如烟花,只要曾经绚烂过,便不枉此生
  4. android 视频通话框架,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮
  5. win7html.exe,win7系统exe程序打开方式还原怎么弄 win7系统还原exe程序打开方式办法介绍...
  6. JDBC(Java数据库连接)
  7. IdentityServer4揭秘---Consent(同意页面)
  8. vscode如何打开html
  9. 保利威视 获取回放API接口
  10. vuex中subscribe的使用