Comparaison des expressions lambda
Q : Existe-t-il un moyen de comparer les expressions lambda ?
R : La spécification du langage Java ne définit pas de moyen de comparer les expressions lambda, mais elle permet aux implémentations de fournir leurs propres méthodes de comparaison.
Considérations sur la mise en œuvre
Actuellement, il existe est une relation 1:1 entre les classes synthétiques qui implémentent les lambdas et les sites de capture du programme. Par conséquent, deux expressions lambda qui capturent la même variable sur le même site de capture seront représentées par la même instance et pourront être comparées en utilisant l'égalité de référence. Cependant, si deux expressions lambda capturent la même variable sur des sites de capture différents ou ne capturent pas, elles peuvent être représentées par des instances différentes et ne peuvent pas être comparées en utilisant l'égalité de référence.
Alternatives
Si vous avez besoin de comparer des expressions lambda, une alternative consiste à utiliser la sérialisation. Les lambdas sérialisables peuvent être comparés en utilisant leur forme sérialisée. Une autre alternative consiste à utiliser des références de méthode au lieu d’expressions lambda. Les références de méthode peuvent être comparées en utilisant l'égalité des références si elles font référence à la même méthode.
Sortie lisible par l'homme
Il n'est actuellement pas possible d'obtenir une chaîne lisible par l'homme représentation d'une expression lambda. Cependant, il est possible d'extraire le nom de la méthode à laquelle l'expression lambda fait référence en utilisant la réflexion.
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!