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