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

Java Lambda的使用範圍是什麼

PHPz
PHPz轉載
2023-05-03 17:13:071240瀏覽

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刪除