언어 ⏎/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);

즉, 람다식이 이미 존재하는 메소드와 동일한 기능이면 메소드 레퍼런스로 람다식을 대체할 수 있다.

 

더블콜론의 사용처

  • 사용하는 람다식이 기존에 있는 인스턴스의 메소드와 동일하면 메소드 레퍼런스로 대체 가능하다.
  • 스태틱 메소드, 인스턴스의 메소드의 메소드 레퍼런스로 사용 가능하다.