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
Susan Sarandonoriginal
2024-11-27 11:19:10287parcourir

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,

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