Variable used in lambda expression should be final or effectively final lambda表達式中使用的變量應該是final或有效的final


Variable used in lambda expression should be final or effectively final lambda表達式中使用的變量應該是final或有效的final
https://blog.csdn.net/qq_43227967/article/details/90511084

目錄

一、錯誤原文:

二、錯誤譯文:

三、錯誤來源:

3.1、Lambda內外部使用變量異常

3.2、線程內外部使用變量異常

四、解決方案


一、錯誤原文:

Variable used in lambda expression should be final or effectively final

二、錯誤譯文:

lambda表達式中使用的變量應該是final或有效的final 

三、錯誤來源:

3.1、Lambda內外部使用變量異常

注意:雖然此處是Lambda表達式使用變量應該是final,但其實在線程中也會出現該問題 。

 

3.2、線程內外部使用變量異常

注意看這邊其實線程與Lambda只是一個簡寫一個原型罷了。

四、解決方案

定義一個變量value,等於i,然后給線程內部去使用,在jdk1.8是能夠識別的,不會拋出異常,但是如果在下方寫value++程序則會繼續拋出警告

 使用value++后程序拋出異常

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM