Uwaga: to pytanie pochodzi z martwego linku, który był poprzednim pytaniem SO, ale tutaj idzie ...
Zobacz ten kod ( uwaga: wiem, że ten kod nie będzie „działał” i że Integer::compare
należy go użyć - właśnie wyodrębniłem go z połączonego pytania ):
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());
Zgodnie z javadoc .min()
i .max()
argumentem obu powinno być Comparator
. Jednak tutaj odniesienia do metod dotyczą metod statycznych Integer
klasy.
Dlaczego w ogóle się to kompiluje?
Integer
nie są metodami Comparator
.
Integer::compare
zamiastInteger::max
iInteger::min
.