首頁 > Java > java教程 > 相當於 System.out::println 方法所引用的 lambda 表達式是什麼?

相當於 System.out::println 方法所引用的 lambda 表達式是什麼?

Linda Hamilton
發布: 2024-11-04 06:26:02
原創
901 人瀏覽過

What is the lambda expression equivalent to the System.out::println method reference?

Lambda 表達式中System.out::println 方法引用的等價

在Java 中,System.out::println 方法引用允許有關引用System.out.println() 方法的簡潔方法。它計算 System.out 並將其分配給一個變數。

問題:

提供相同行為的System.out::println 對應的lambda 表達式是什麼?

答案:

完全等效的lambda 表達式為:

num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
}
登入後複製

此lambda 表達式擷取對System.out 中的引用執行println 方法之前的變數。這可以防止對 System.out 的任何變更影響 lambda 表達式的行為。

與簡單Lambda 表達式的區別:

更簡單的lambda 表達式,如num -> System.out.println(num) 每次呼叫時都會評估System.out,使其在執行lambda 時容易受到System.out 中的變更的影響。

用法:

等效的lambda 表達式的使用方式與System.out::println 相同,如:

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
numbers.forEach(num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
});
登入後複製

這段代碼會將清單中的數字列印到控制台。

以上是相當於 System.out::println 方法所引用的 lambda 表達式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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