Heim > Java > javaLernprogramm > Verwirrung um Methodenreferenzierung

Verwirrung um Methodenreferenzierung

Patricia Arquette
Freigeben: 2024-09-23 06:21:14
Original
515 Leute haben es durchsucht

Confusion Around Method Referencing

Methodenreferenzen in Java bieten eine Möglichkeit, auf Methoden oder Konstruktoren zu verweisen, ohne sie explizit aufzurufen. Sie können als Kurzschrift zum Schreiben einfacher Lambda-Ausdrücke betrachtet werden.

Meistens kann die Methodenreferenzierung entweder statisch sein oder sich auf eine Instanz beziehen:

Integer::sum;
System.out::println;
Nach dem Login kopieren

Dies sind Beispiele für statische Methodenreferenzen (auch als gebundene Referenzierung bekannt).

Bedenken Sie jedoch Folgendes:

String::concat
Nach dem Login kopieren

Concatis ist hier keine statische Methode. Wie funktioniert das? Dies ist ein Beispiel für ungebundene Referenzierung. Der Compiler versteht, dass es sich hierbei um eine Instanzmethodenreferenz handelt, die auf der Art und Weise basiert, wie unser Code geschrieben ist. Dadurch ist es möglich, Methodenaufrufe wie diesen zu vereinfachen.

Die Art und Weise, wie wir unseren Code schreiben, bestimmt diese Art von Referenzen (insbesondere ungebundene). Am Beispiel von Concatas:

((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`*/
Nach dem Login kopieren

Anstatt also ein vollständiges Lambda zu schreiben, können wir es mit einer Methodenreferenz vereinfachen.

Weiter lernen?

Das obige ist der detaillierte Inhalt vonVerwirrung um Methodenreferenzierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage