Je sais que dans la classe Collections de Java, il existe une méthode statique de tri :
sort(List<T> list, Comparator<? super T> c**)
Le deuxième argument de sort doit être un objet qui implémente la norme Comparateur et sa méthode de comparaison.
Mais quand j'apprends Référence de la méthode lambda Je vois cet exemple :
public class Test
{
public static void main(String[] args)
{
new Test().sortWord();
}
public void sortWord()
{
List<String> lst = new ArrayList<>();
lst.add("hello");
lst.add("world");
lst.add("apple");
lst.add("zipcode");
Collections.sort(lst, this::compareWord);
System.out.println(lst);
}
public int compareWord(String a, String b)
{
return a.compareTo(b);
}
}
Il s'agit d'un exemple de référence de méthode pour une méthode d'instance. la méthode compareWord n'a rien à voir avec l'interface Comparator, je ne comprends pas pourquoi cela fonctionne ? quelqu'un peut-il l'expliquer ?
Je vous remercie de votre attention.