Java8的Lambda表達式

關於遇到的一個問題:編譯器報Lambda expression’s local variable i cannot re-declare another local variable defined in an enclosing scope異常express

緣由:Lambda做用域中的變量禁止與其外部做用域的變量重名,那是由於Lambda不會定義新的做用域,Lambda做用域的與外部做用域是相同的,若聲明瞭相同的變量,則編譯器報異常ui

 

提醒:1.局部變量能夠在Lambda表達式做用域或者其做用域外聲明,但使用以前必須先初始化,不然編譯器會報錯The local variable i may not have been initializedspa

2.Lambda表達式中的變量使用必須爲最終態等效終態,Lamdba表達式內只能對外部的變量進行引用而不能夠賦值,不然會報3d

Variable i is required to be final or effectively final異常blog

相關文章
相關標籤/搜索