为什么80%的码农都做不了架构师?>>>
lambda表达式提示变量错误:Variable used in lambda expression should be final or effectively final
注释掉第二行就ok
分析:根据语法,变量必须为final.但是a已经被修改了.
为什么 Lambda 表达式(匿名类) 不能访问非 final 的局部变量呢? 因为实例变量存在堆中,而局部变量是在栈上分配,Lambda 表达(匿名类) 会在另一个线程中执行。如果在线程中要直接访问一个局部变量,可能线程执行时该局部变量已经被销毁了,而 final 类型的局部变量在 Lambda 表达式(匿名类) 中其实是局部变量的一个拷贝。
参考:/lwwgtm/article/details/60478936