"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi les références de méthode avec les types de retour peuvent-elles implémenter l'interface de consommation en Java?

Pourquoi les références de méthode avec les types de retour peuvent-elles implémenter l'interface de consommation en Java?

Publié le 2025-03-22
Parcourir:969

Why Can Method References with Return Types Implement the Consumer Interface in Java?

Pourquoi les références de méthode avec les types de retour correspondent à l'interface de consommation

Dans Java, les références de méthode peuvent être utilisées pour créer des interfaces fonctionnelles. L'interface de consommation, par exemple, prend un seul argument et effectue une action à ce sujet. Étonnamment, les références de méthode avec les types de retour peuvent également correspondre à l'interface du consommateur.

La décision de permettre à ce comportement était basée sur l'idée d'adapter des méthodes aux interfaces fonctionnelles de la même manière que la façon dont elles sont appelées. Plus précisément, toute méthode de retour de valeur peut être adaptée à une interface de consommation, même si la valeur de retour est ignorée.

concernant les expressions de lambda, il existe deux formulaires: (args) -> expression et (args) -> {instructions *}. Ce dernier formulaire peut être compatible vide si aucun chemin de code ne tente de renvoyer une valeur. La première forme est compatible à valeur si l'expression évalue à une valeur. Cependant, si l'expression est également une instruction (telle qu'une méthode invocation ou opérateur incrément / décrément), elle peut être compatible vide.

Par exemple, l'expression s -> s est compatible avec valeur, tandis que s -> i est compatible void. En effet, les opérateurs d'incrément / décrément peuvent être utilisés comme déclarations par eux-mêmes. Une autre expression compatible vide est s -> new quelles (s), car les expressions de création d'instance de classe peuvent également être utilisées comme instructions.

Fait intéressant, (arg) -> methodreturningVoid (arg) est la seule forme d'expression qui n'est pas compatible de valeur.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3