首頁 > Java > java教程 > Java Lambda的使用範圍是什麼

Java Lambda的使用範圍是什麼

PHPz
發布: 2023-05-03 17:13:07
轉載
1239 人瀏覽過

1、存取局部變數

可以存取lambda表達式外部的final局部變數:

final int num = 1;
Converter<Integer, String> stringConverter =
        (from) -> String.valueOf(from + num);
 
stringConverter.convert(2);     // 3
登入後複製

但是與匿名物件不同的是,變數num並不需要一定是final。在lambda表達式內部企圖改變num的值也是不被允許的。

2、存取成員變數和靜態變數

與局部變數不同,我們在lambda表達式的內部能取得到對成員變數或靜態變數的讀寫權。這種訪問行為在匿名物件裡是非常典型的。

class Lambda4 {
    static int outerStaticNum;
    int outerNum;
 
    void testScopes() {
        Converter<Integer, String> stringConverter1 = (from) -> {
            outerNum = 23;
            return String.valueOf(from);
        };
 
        Converter<Integer, String> stringConverter2 = (from) -> {
            outerStaticNum = 72;
            return String.valueOf(from);
        };
    }
}
登入後複製

以上是Java Lambda的使用範圍是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板