在 lambda 表達式中,表達式範圍內使用的變數應為最終變數或「有效最終」。此限制源自於對捕獲的變數施加的不變性要求。
Java 語言規範(JLS) 在§15.27.2 中解釋了這一點:
「對有效最終變量的限制禁止動態訪問-更改局部變量,其捕獲可能會引入並發問題。這可確保 lambda 存取的值在整個執行過程中保持一致。
此限制不僅適用於 lambda 表達式,也適用於匿名內部類別。因此,確保此類構造中使用的變數被聲明為最終變數或有效最終變數(即僅分配一次值且從未修改)至關重要。
以上是為什麼 Lambda 表達式變數必須是有效的最終變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!