Maison >Java >javaDidacticiel >Confusion autour du référencement des méthodes

Confusion autour du référencement des méthodes

Patricia Arquette
Patricia Arquetteoriginal
2024-09-23 06:21:14511parcourir

Confusion Around Method Referencing

Les références de méthodes en Java fournissent un moyen de faire référence à des méthodes ou à des constructeurs sans les invoquer explicitement. Ils peuvent être considérés comme un raccourci pour écrire des expressions lambda simples.

La plupart du temps, le référencement des méthodes peut être statique ou lié à une instance :

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

Ceci sont des exemples de références de méthodes statiques (également appelées référencement lié).

Cependant, considérez ceci :

String::concat

Ici, concatis n'est pas une méthode statique, alors comment ça marche ? Ceci est un exemple de référencement non lié. Le compilateur comprend qu'il s'agit d'une référence de méthode d'instance basée sur la façon dont notre code est écrit. Cela permet de simplifier les appels de méthode comme celui-ci.

La façon dont nous écrivons notre code détermine ces types de références (en particulier celles non liées). Prenons un exemple de 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`*/

Ainsi, au lieu d'écrire un lambda complet, nous pouvons simplifier avec une référence de méthode.

Continuer à apprendre ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn