Nota: questa domanda proviene da un link non attivo che era una precedente domanda SO, ma qui va ...
Vedi questo codice ( nota: so che questo codice non "funzionerà" e che Integer::comparedovrebbe essere usato - l'ho appena estratto dalla domanda collegata ):
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());
Secondo il javadoc di .min()e .max(), l'argomento di entrambi dovrebbe essere a Comparator. Eppure qui i riferimenti ai metodi sono metodi statici della Integerclasse.
Quindi, perché questo compila affatto?
Integernon sono metodi di Comparator.
Integer::compareposto diInteger::maxeInteger::min.