언어 ⏎/java
더블콜론과 람다
LeeDiculous
2022. 12. 30. 11:43
메소드 레퍼런스라고도 불린다. 자바8 버전에서 소개되었다. 람다식과 똑같은 기능을 해준다. 람다식과 차이점이 있다면 인스턴스를 활용하여 메소드를 전달하는데에 있다.
더블콜론과 람다
더블콜론은 람다의 간결한 버전중 하나이다. 아래 예제를 보자.
List<String> list = List.of("Peter", "Thomas", "Edvard", "Gerhard");
// print using lambda
list.forEach(item -> System.out.println(item));
자바의 더블콜론은 위 람다식을 아래와 같이 더욱 간결하게 해준다.
// print using :: (method reference operator)
list.forEach(System.out::println);
즉, 람다식이 이미 존재하는 메소드와 동일한 기능이면 메소드 레퍼런스로 람다식을 대체할 수 있다.
더블콜론의 사용처
- 사용하는 람다식이 기존에 있는 인스턴스의 메소드와 동일하면 메소드 레퍼런스로 대체 가능하다.
- 스태틱 메소드, 인스턴스의 메소드의 메소드 레퍼런스로 사용 가능하다.