Variable used in lambda expression should be final or effectively final)
时间: 2023-10-21 18:29:08 浏览: 183
编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信
Variable used in lambda expression should be final or effectively final是一个编译器的错误提示。它的意思是在Lambda表达式中使用的变量应该是final或者是effective final。final变量是指一旦被赋值后就不能再改变的变量。而effective final变量是指虽然没有被声明为final,但是在Lambda表达式中没有改变过其值的变量。编译器要求变量是final或者effective final的原因是为了确保Lambda表达式不会访问到在其作用域之外发生了改变的变量的值,从而保证Lambda表达式的可靠性和一致性。所以当你在Lambda表达式中修改了变量的值,编译器会发出这个错误提示。为了解决这个问题,你可以将变量声明为final或者将其声明为effective final,即在Lambda表达式中不改变其值。这样编译器就不会报错了。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文