local variables referenced from a lambda expression must be final or effectively final
时间: 2023-10-12 10:04:12 浏览: 313
在Java中,lambda表达式可以引用标记了final的外层局部变量。这是因为lambda表达式的执行可能会在创建它的线程之外发生。因此,为了确保变量的一致性,Java要求使用final或有效final(指变量在定义后没有被修改)的局部变量。如果尝试在lambda表达式内部修改定义在外部的局部变量,会导致编译错误。 [2 [3 在提供的代码示例中,salutation变量被标记为final,因此可以在lambda表达式中引用它。但是,如果尝试修改salutation变量,编译会报错,因为它被视为final变量。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Lambda 表达式-Java 8 新特性](https://blog.csdn.net/qq_40893942/article/details/126308971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文