참고 :이 질문은 이전 SO 질문 인 데드 링크에서 비롯되었지만 여기에 있습니다 ...
이 코드를 참조하십시오 ( 참고 :이 코드는 "작동하지 않는다"는 것을 알고 Integer::compare
있어야합니다. 링크 된 질문에서 추출했습니다 .
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());
.min()
및 의 javadoc에 따르면 .max()
둘 다의 인수는이어야합니다 Comparator
. 그러나 여기에서 메소드 참조는 Integer
클래스의 정적 메소드에 대한 것 입니다.
그렇다면 왜 이것이 전혀 컴파일되지 않습니까?
Integer
이 아니라고 생각하는 것처럼 들리게됩니다 Comparator
.
Integer::compare
대신 사용해야합니다 .Integer::max
Integer::min