Remarque: cette question provient d'un lien mort qui était une question SO précédente, mais voici ...
Voir ce code ( note: je sais que ce code ne "fonctionnera" pas et qu'il Integer::comparedevrait être utilisé - je viens de l'extraire de la question liée ):
final ArrayList <Integer> list
= IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList());
System.out.println(list.stream().max(Integer::max).get());
System.out.println(list.stream().min(Integer::min).get());
Selon le javadoc de .min()et .max(), l'argument des deux devrait être a Comparator. Pourtant, ici, les références de méthode sont des méthodes statiques de la Integerclasse.
Alors, pourquoi cela se compile-il?
Integerne sont pas des méthodes de Comparator.
Integer::compareplace deInteger::maxetInteger::min.