Lambda 表達式需要「最終」或「有效最終」變數
錯誤訊息「lambda 表達式中使用的變數應該是最終或有效的” Final”表示lambda 表達式中使用的變數必須宣告為Final或滿足特定標準才能被有效考慮Final.
在提供的程式碼片段中:
private TimeZone extractCalendarTimeZoneComponent(Calendar cal, TimeZone calTz) { // Code missing cal.getComponents().getComponents("VTIMEZONE").forEach(component -> { // Code missing if (calTz == null) { calTz = TimeZone.getTimeZone(v.getTimeZoneId().getValue()); } }); // Code missing }
拋出錯誤是因為calTz 變數在lambda 表達式中未聲明為Final。要求lambda表達式中使用的變數必須是最終變數或有效最終變量,以防止潛在的並發問題。 .2) )狀態:
對有效最終變量的限制禁止訪問動態更改的局部變量,其捕獲可能會引入並發性問題。表達式中捕獲的變數發生突變來降低並發風險。中使用的變數應宣告為Final 或有效Final,這表示它們不能在lambda 表達式中修改範圍。
以上是為什麼 Java 中的 Lambda 表達式需要「最終」或「有效最終」變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!