Maison >Java >javaDidacticiel >Confusion autour du référencement des méthodes
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!