首頁 >Java >java教程 >System.out::println 的 Lambda 表達式等價物是什麼?

System.out::println 的 Lambda 表達式等價物是什麼?

Linda Hamilton
Linda Hamilton原創
2024-11-03 15:16:30839瀏覽

What is the Lambda Expression Equivalent of System.out::println?

探索 System.out::println 等價的 Lambda 表達式

Java 的方法引用語法提供了一種簡潔且可讀的方法來引用方法。在給定的範例中,方法引用 System.out::println 用作 forEach 方法的參數。

理解方法引用

方法引用 System .out::println 表示應使用 System.out 引用的物件來呼叫 println 方法。在本例中,System.out 是 System 類別的靜態成員,表示標準輸出流。

等效 Lambda 表達式

System.out 的等效 lambda 表達式。 out::println 將為:

<code class="java">o -> System.out.println(o)</code>

此 lambda 表達式先計算 System.out,捕獲計算值,然後建立拉姆達函數。此 lambda 函數採用參數 o 並在捕獲的 System.out 物件上呼叫 println 方法,將 o 的值列印到標準輸出。

精確等效Lambda 表達式

但是,值得注意的是,System.out::println 的完全相同需要以下內容步驟:

  1. 將求值的System.out 物件儲存在變數中:

    <code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
  2. 在lambda 表達式中使用儲存的變數:

    <code class="java">numbers.forEach(o -> p.println(o));</code>
    在lambda 表達式中使用儲存的變數:

這完全等效確保任何更改到System.out 不會影響lambda 表達式的行為。

以上是System.out::println 的 Lambda 表達式等價物是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn