Maison > Java > javaDidacticiel > Pourquoi l'inférence de type de comparateur Java 8 échoue-t-elle lors du chaînage des méthodes « thenComparing » ?

Pourquoi l'inférence de type de comparateur Java 8 échoue-t-elle lors du chaînage des méthodes « thenComparing » ?

Susan Sarandon
Libérer: 2024-11-27 11:19:10
original
376 Les gens l'ont consulté

Why Does Java 8 Comparator Type Inference Fail When Chaining `thenComparing` Methods?

Confusion d'inférence de type de comparateur Java 8

Lors de l'utilisation des méthodes statiques de Comparator, les paramètres de type peuvent être omis dans les expressions lambda. Cependant, le chaînage des méthodes thenComparing peut entraîner des erreurs de compilation.

Comprendre le problème

Lors du chaînage des méthodes thenComparing, le compilateur perd les informations de type sur le premier paramètre lambda (p1) . En effet, les expressions lambda dans les positions du récepteur de méthode ne déduisent pas de types sensibles au contexte.

Par exemple, dans l'appel suivant :

Collections.sort(playlist1,
Copier après la connexion

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 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