Maison > Java > javaDidacticiel > Pourquoi « Comparator.reversed() » échoue-t-il avec les expressions Lambda dans le tri Java ?

Pourquoi « Comparator.reversed() » échoue-t-il avec les expressions Lambda dans le tri Java ?

Barbara Streisand
Libérer: 2024-12-03 21:38:12
original
550 Les gens l'ont consulté

Why Does `Comparator.reversed()` Fail with Lambda Expressions in Java Sorting?

Pourquoi Comparator.reversed() échoue avec Lambdas

Lors du tri d'une liste d'objets utilisateur à l'aide de Comparator.comparing avec une expression lambda, un une erreur peut se produire :

userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error
Copier après la connexion

Cela est dû à une limitation dans le mécanisme d'inférence de type du compilateur. Le compilateur a du mal à déterminer le type de l'argument lambda 'u'.

Dans l'exemple suivant, l'utilisation d'une référence de méthode permet au compilateur de déduire le type cible et d'éviter l'erreur :

userList.sort(Comparator.comparing(User::getName).reversed()); // works
Copier après la connexion

La référence de la méthode fournit des informations de type supplémentaires, que le compilateur utilise pour déduire le type de 'u' en tant qu'utilisateur.

Pour éviter l'erreur lors de l'utilisation d'un lambda, vous pouvez spécifier explicitement le type de l'argument lambda :

userList.sort(Comparator.comparing((User u) -> u.getName()).reversed());
Copier après la connexion

Dans les futures versions du compilateur, ce problème pourrait être résolu et l'erreur pourrait ne plus se produire.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal