Maison >Java >javaDidacticiel >Article Préférer l'utilisation d'interfaces fonctionnelles standards

Article Préférer l'utilisation d'interfaces fonctionnelles standards

WBOY
WBOYoriginal
2024-07-25 10:47:31661parcourir

Item  Prefira o uso das interfaces funcionais padrão

Évolution des API avec Lambdas : Avec l'introduction des lambdas en Java, les pratiques d'écriture des API ont changé, par exemple en évitant le modèle de méthode modèle au profit du modèle statique usines ou constructeurs qui acceptent des objets de fonction.

Exemple LinkedHashMap : Au lieu de remplacer la méthode removeEldestEntry pour le contrôle du cache, il serait plus moderne d'utiliser une usine ou un constructeur statique avec un objet fonction, en utilisant l'interface fonctionnelle BiPredicate.

Utilisation d'interfaces fonctionnelles standard : Le package java.util.function propose une large collection d'interfaces fonctionnelles standard, qui doivent être préférées aux interfaces personnalisées pour rendre l'API plus facile à comprendre et améliorer l'interopérabilité.

Interfaces fonctionnelles principales :

  • UnaryOperator : Applique une fonction de type T à T.
  • BinaryOperator : applique une fonction à deux arguments de type T à T.
  • Prédicat : Teste un argument et renvoie un booléen.
  • Fonction : Applique une fonction de type T à R.
  • Fournisseur : Fournit une valeur de type T sans argument.
  • Consumer : Consomme un argument de type T sans retour.

Interfaces fonctionnelles pour les types primitifs : il existe des variantes des six interfaces de base pour les types primitifs (int, long, double), telles que IntPredicate et LongBinaryOperator.

Quand créer des interfaces fonctionnelles personnalisées :
Quand aucune interface standard ne répond aux besoins.
Lorsqu'un nom descriptif ou un contrat solide est nécessaire.
Quand l’interface peut bénéficier de méthodes personnalisées par défaut.
Utilisation de l'annotation @FunctionalInterface : indique que l'interface a été conçue pour prendre en charge les lambdas, garantissant qu'elle n'a qu'une seule méthode abstraite.

Évitez les surcharges ambiguës : Ne créez pas de méthodes avec de nombreuses surcharges qui acceptent différentes interfaces fonctionnelles dans la même position d'argument pour éviter les ambiguïtés.

**Conclusion : **Les lambdas et les interfaces fonctionnelles doivent être prises en compte dans la conception des API modernes. Généralement, il est préférable d'utiliser les interfaces java.util.function par défaut, sauf dans des cas spécifiques qui justifient des interfaces personnalisées.

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