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 的完全相同需要以下內容步驟:
將求值的System.out 物件儲存在變數中:
<code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
在lambda 表達式中使用儲存的變數:
<code class="java">numbers.forEach(o -> p.println(o));</code>在lambda 表達式中使用儲存的變數:
以上是System.out::println 的 Lambda 表達式等價物是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!