Copy ‘xxx’ to effectively final temp variable 问题解决

今天在项目中修改接口的时候突然发现了类型问题,便用if函数对变量进行了类型的校验。

int a = 0;
if (params.get("a") instanceof Integer) {a = (int) params.get("a");
}else {a = Integer.parseInt(params.get("a").toString());
}

没有多想,便进行了提交,编译后发现竟然报错了。筛查后发现,在这块代码下有一处匿名内部类调用了该变量。

int finalA = a;
Thread thread = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("thread a = " + finalA);}
});

出错的原因是:内部类对象的生命周期会超过局部变量的生命周期。

所以在匿名内部类中,只能调用被final修饰的局部变量,而在java 8中,如果局部变量被匿名内部类访问,那么该变量会自动被final隐性修饰。Lambda大致同理。

Copy ‘xxx‘ to effectively final temp variable 问题解决相关推荐

  1. 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 ...

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

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

  3. MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法

    问题概述 关于这个问题,博主是在项目上线生产运行的过程中遇到的,在一次运营部门的同事通知,系统功能操作出现异常,博主随即对问题展开排查和处理,通过后台日志发现,事务提交失败 " Could ...

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

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

  5. MySQL 报错 ‘Variable ‘XXX‘ is a read only variable‘

    MySQL 报错 'Variable 'XXX' is a read only variable' 设置参数时报错 [SQL] set global innodb_buffer_pool_size=5 ...

  6. Linux命令行使用matplotlib,报错_tkinter.TclError: no display name and no $DISPLAY environment variable问题解决

    此文首发于我的个人博客:Linux命令行使用matplotlib,报错_tkinter.TclError no display name and no $DISPLAY environment var ...

  7. CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决

    CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决 参考文章: (1)CentOS使用chkconfig增加开机服 ...

  8. 1.20 Java8新特性:Effectively final

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

  9. SVN Working Copy xxx locked

    SVN Working Copy xxx locked,有时用svn时会出现这样的问题. 删除隐藏文件夹.svn下的一个lock...文件.ok

  10. java枚举类中字段有没有必要加final____枚举类字段 Field ‘xxx‘ may be ‘final‘

    java枚举类中字段有没有必要加final 今天在写一个系统统一返回码的枚举类时候,突然想到一个问题,当不小心手抖给枚举类自动生成了set方法,而恰巧在用的地方不小心用了set方法,从而修改了code ...

最新文章

  1. Linux程序移植到Android上
  2. C#学习 小知识_多态的简单实现_2018Oct
  3. Duilib学习笔记《03》— 控件使用
  4. centos安装无线网卡驱动_CentOS下显卡驱动安装的相关思考
  5. 存储计算解耦合,构建中国人英语语音数据库
  6. 分享一下:推荐一个网站,练习CSS3
  7. shell脚本if和switch语句编写案例
  8. 什么是eSIM技术,eSIM的工作原理以及为什么eSIM会很重要
  9. Java后台通过jxl生成Excel表格
  10. [转载] Linux+树莓派3开发总结——cx_Freeze打包Python3程序(工程文件)
  11. Spring Cloud学习笔记-005
  12. var a=function和function b有什么区别
  13. yii2 memcache 跨平台交互 键和值不一样
  14. AP6212认证_自适应测试
  15. ES系列:解决Cluster state has not been recovered yet, cannot write to the [null] index问题
  16. 企业邮箱是什么?企业邮箱和个人邮箱的区别在哪里
  17. 为什么模型loss为负
  18. MacBook Pro 安装软件navicat15 , mac10.15安装navcat15
  19. 板岩Slate Digital发布FG-X 2 ML-1 FG-36A
  20. 什么是jQuery,jquery的特点

热门文章

  1. day15_css补充、js基础、dom基础
  2. bitcode 是什么_secured是什么意思 Secured borrowings是什么意思
  3. 本地计算机的ics无法启动不了,ics启动失败怎么办 win8_ICS服务无法启动(win8.1)...
  4. NFT 作品集推荐|Lululand《爱是永恒》
  5. arduino as5048工作原理_普通精度应用的另一种选择——磁性旋转编码器
  6. PS 钢笔工具
  7. js或jquery实现文件下载
  8. 【财富空间】张泉灵:时代抛弃你时,连一声再见都不会说
  9. 怎样使用secureCRT连接路由器
  10. springboot毕设项目养老院信息管理系统kak2w(java+VUE+Mybatis+Maven+Mysql)