首頁 >Java >java教程 >方法引用的混亂

方法引用的混亂

Patricia Arquette
Patricia Arquette原創
2024-09-23 06:21:14515瀏覽

Confusion Around Method Referencing

Java 中的方法引用提供了一種無需明確呼叫即可引用方法或建構函數的方法。它們可以被認為是編寫簡單 lambda 表達式的簡寫。

主要方法引用可以是靜態的或與實例相關:

Integer::sum;
System.out::println;

這些是靜態方法引用(也稱為綁定引用)的範例。

但是,請考慮一下:

String::concat

這裡,concat 不是一個靜態方法,那麼它是如何運作的呢?這是未綁定引用的範例。編譯器根據我們程式碼的編寫方式來理解這是一個實例方法參考。這使得簡化這樣的方法呼叫成為可能。

我們編寫程式碼的方式決定了這些引用類型(尤其是未綁定的引用)。以連接為例:

((a, b) -> a + b, "Hello", "World");
// ----------------Is same as -------------
((a, b) -> a.concat(b), "Hello", "World"); // This one could be replaced by mehod referencing

// ----------------Alternative-------------

(String::concat, "Hello", "World");

/* The use of 'a' as the first parameter and calling `concat `of 'a' itself 
gives the compiler an idea of how it should decode `String::concat`*/

因此,我們可以透過方法引用來簡化,而不是寫出完整的 lambda。

繼續學習?

以上是方法引用的混亂的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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