Почему .max (Integer :: max) и .min (Integer :: min) компилируют на потоке Java 8?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему .max (Integer :: max) и .min (Integer :: min) компилируют на потоке Java 8?

Сообщение Anonymous »

См. Следующий код, который возникает из переполнения переполнений, теперь удаленного стека: < /p>

Код: Выделить всё

final List 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());
(Примечание: я знаю, что этот код не будет «работает», и что Integer :: Compare следует использовать - я просто извлекал его из связанных Вопрос)
Согласно Javadoc of .min () и .max () , аргумент обоих должен быть компаратором . Тем не менее, здесь метод ссылки на статические методы целого класса .
Почему это вообще компиляция?

Подробнее здесь: https://stackoverflow.com/questions/225 ... a-8-stream

Вернуться в «JAVA»