https://www.tcpschool.com/java/java_lambda_reference
javaList<Number> list = Arrays.asList(1, 2, 3, 4, 5, 6);
// 기존 람다 방식
list.forEach( (e) -> System.out.println(e) );
// 메소드 참조 방식
list.forEach(System.out::println);
람다식을 사용할 때 ::(더블 콜론)을 이용해 메소드를 실행시는 경우가 있습니다.이러한 문법을 메소드 참조라고 하며 람다식에서 불필요한 매개변수를 제거하는 것이 목적입니다.람다식에서 기존 메소드를 단순하게 호출만 하는 경우에 메소드 참조를 사용하면 불필요한 매개변수를 제거하고 '::' 기호를 사용하여 표현할 수 있습니다.
📌 Stream에서의 메소드 참조
사실 메소드 참조는 람다식을 사용할 일이 많은 stream에서 많이 찾아볼 수 있습니다.그럼 스트림에서 메소드 참조가 어떻게 쓰이는지 간단하게 알아보고 글을 마치겠습니다.
List<String> list = List.of("A","AB","ABC","ABCD");
// 람다식 사용
list.stream()
.map(str -> str.length())
.forEach(str -> System.out.println(str));
// 메소드 참조 사용
list.stream()
.map(String::length)
.forEach(System.out::println);