线程内部使用线程外部的变量

img


thread。
这里为什么不能用i变量?
线程内部只能用线程外部的常量吗?

你把 鼠标放到错误上面 可以看到 如下提示
"Variable used in lambda expression should be final or effectively final"
翻译就是 Lambda表达式中使用的变量必须是final或有效地被标记为final

final 应该好理解,就是 只能被赋值一次,不能再次修改;
有效地标记为final,这个意思是 没有重新赋值的情况出现

for循环中 i 很明显 不满足这两点要求,编译器报错

不是,是因为你这里类型不对
应该是
String.valueOf(i) 而不是 i
下面类似