Copy ‘xxx‘ to effectively final temp variable 问题解决
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 问题解决相关推荐
- 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 ...
- java增加final,Java8增加功能--Effectively final 功能
java8新增了很多功能,可以大大简化代码,这个系列将会一一辅助代码加以介绍. 局部内部类和匿名内部类访问的局部变量必须由final修饰,java8开始,可以不加final修饰符,由系统默认添加.ja ...
- MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法
问题概述 关于这个问题,博主是在项目上线生产运行的过程中遇到的,在一次运营部门的同事通知,系统功能操作出现异常,博主随即对问题展开排查和处理,通过后台日志发现,事务提交失败 " Could ...
- java中的final关键字和effectively final
我们在给lamda传参数时,可能会出现如下情况: Variable used in lambda expression should be final or effectively final 一般情 ...
- MySQL 报错 ‘Variable ‘XXX‘ is a read only variable‘
MySQL 报错 'Variable 'XXX' is a read only variable' 设置参数时报错 [SQL] set global innodb_buffer_pool_size=5 ...
- Linux命令行使用matplotlib,报错_tkinter.TclError: no display name and no $DISPLAY environment variable问题解决
此文首发于我的个人博客:Linux命令行使用matplotlib,报错_tkinter.TclError no display name and no $DISPLAY environment var ...
- CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决 参考文章: (1)CentOS使用chkconfig增加开机服 ...
- 1.20 Java8新特性:Effectively final
Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性.但从 Java 8 开始,我们可以不加 final 修饰符,由系统默认添加,当然这在 Jav ...
- SVN Working Copy xxx locked
SVN Working Copy xxx locked,有时用svn时会出现这样的问题. 删除隐藏文件夹.svn下的一个lock...文件.ok
- java枚举类中字段有没有必要加final____枚举类字段 Field ‘xxx‘ may be ‘final‘
java枚举类中字段有没有必要加final 今天在写一个系统统一返回码的枚举类时候,突然想到一个问题,当不小心手抖给枚举类自动生成了set方法,而恰巧在用的地方不小心用了set方法,从而修改了code ...
最新文章
- Linux程序移植到Android上
- C#学习 小知识_多态的简单实现_2018Oct
- Duilib学习笔记《03》— 控件使用
- centos安装无线网卡驱动_CentOS下显卡驱动安装的相关思考
- 存储计算解耦合,构建中国人英语语音数据库
- 分享一下:推荐一个网站,练习CSS3
- shell脚本if和switch语句编写案例
- 什么是eSIM技术,eSIM的工作原理以及为什么eSIM会很重要
- Java后台通过jxl生成Excel表格
- [转载] Linux+树莓派3开发总结——cx_Freeze打包Python3程序(工程文件)
- Spring Cloud学习笔记-005
- var a=function和function b有什么区别
- yii2 memcache 跨平台交互 键和值不一样
- AP6212认证_自适应测试
- ES系列:解决Cluster state has not been recovered yet, cannot write to the [null] index问题
- 企业邮箱是什么?企业邮箱和个人邮箱的区别在哪里
- 为什么模型loss为负
- MacBook Pro 安装软件navicat15 , mac10.15安装navcat15
- 板岩Slate Digital发布FG-X 2 ML-1 FG-36A
- 什么是jQuery,jquery的特点
热门文章
- day15_css补充、js基础、dom基础
- bitcode 是什么_secured是什么意思 Secured borrowings是什么意思
- 本地计算机的ics无法启动不了,ics启动失败怎么办 win8_ICS服务无法启动(win8.1)...
- NFT 作品集推荐|Lululand《爱是永恒》
- arduino as5048工作原理_普通精度应用的另一种选择——磁性旋转编码器
- PS 钢笔工具
- js或jquery实现文件下载
- 【财富空间】张泉灵:时代抛弃你时,连一声再见都不会说
- 怎样使用secureCRT连接路由器
- springboot毕设项目养老院信息管理系统kak2w(java+VUE+Mybatis+Maven+Mysql)