더북(TheBook)

04
메서드 레퍼런스

때로는 다른 코드에 전달하려고 하는 액션을 수행하는 메서드가 이미 존재할 수도 있다. 예를 들면, 버튼을 클릭할 때마다 단순히 이벤트 객체를 출력하고 싶은 경우다. 물론 다음과 같이 호출할 수 있다.


button.setOnAction(event -> System.out.println(event));


 

하지만 setOnAction 메서드에 println 메서드만 전달할 수 있다면 더 좋을 것이다. 다음은 이 방법을 보여준다.


button.setOnAction(System.out::println);


 

System.out::println 표현식은 람다 표현식 x -> System.out.println(x)에 해당하는 메서드 레퍼런스method reference다.

다른 예로, 대소문자를 가리지 않고 문자열을 정렬하고 싶은 경우를 보자. 다음과 같은 메서드 표현식을 전달할 수 있다.


Arrays.sort(strings, String::compareToIgnoreCase)


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.