Maison >Java >javaDidacticiel >Function.identity() vs t->t : quel mappage d'identité Lambda est le meilleur ?

Function.identity() vs t->t : quel mappage d'identité Lambda est le meilleur ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 11:47:02547parcourir

Function.identity() vs. t->t : Quel mappage d'identité Lambda est le meilleur ? 
t : Quel mappage d'identité Lambda est le meilleur ? " />

Dois-je utiliser Function.identity() ou t->t pour le mappage d'identité Lambda ?

Lorsque vous travaillez avec Java 8 lambdas, vous pouvez rencontrer situations où vous devez appliquer un mappage d'identité qui renvoie simplement la valeur d'entrée. Dans de tels cas, deux options se présentent : Function.identity() et t->t.

Function.identity(. ) contre t->t

À première vue, les deux méthodes semblent accomplir la même tâche. Cependant, il existe des différences subtiles entre elles.

  • Égalité de référence : Function.identity() renvoie toujours la même instance, tandis que chaque occurrence de t->t crée une nouvelle instance avec une classe d'implémentation unique.
  • Empreinte mémoire : L'utilisation de Function.identity() peut économiser de la mémoire par rapport à t->t en raison de l'égalité de référence susmentionnée.

Implications dans le monde réel

En pratique, le choix entre Function.identity() et t->t se résume souvent à des considérations de lisibilité et d'efficacité de la mémoire. Si la notation t->t, plus explicite, améliore la lisibilité du code, elle peut être préférée à Function.identity. (). Cependant, si l'optimisation de la mémoire est un problème, Function.identity() peut offrir un avantage marginal en réduisant le nombre d'instances lambda créées.

Considérations supplémentaires

    Lors de la compilation avec des informations de débogage, Function.identity() empêche de tracer la source de l'instance, tandis que t->t permet un débogage plus facile.
  • Dans certains cas, comme la composition fonctionnelle, on peut préférer Function .identity() pour maintenir une syntaxe cohérente.
En fin de compte, le meilleur choix dépend du contexte spécifique et des exigences du code. Cependant, comprendre les différences subtiles entre Function.identity() et t->t peut vous aider à prendre des décisions éclairées concernant l'utilisation de lambda.

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