함수 객체를 람다보다 간결하게 만드는 방법이다.
//람다
map.merge(key, 1, (count, incr) -> count + incr);
//정적 메서드 sum의 참조 전달
map.merge(key, 1, Integer::sum);
람다로 구현했을 때 너무 길거나 복잡하다면 메서드 참조로 변환하면 좋다.
메서드와 람다가 같은 클래스 안에 있는 경우에 람다가 메서드 참조보다 간결할 때가 있다.
//GoshThisClassNameIsHumongous 클래스 안에 다음 코드가 있다면
service.execute(GoshThisClassNameIsHumongous::action);
//람다로 대체
service.execute(() -> action);
java.util.function이 제공하는 제네릭 정적 팩터리 메서드인 Function.identity()를 사용하는 것보다 같은 기능의 람다 (x→x)를 사용하는 것이 코드도 짧고 명확하다.
가장 흔한 유형이며 앞의 예시에서 나온 메서드 참조이다.
정적 참조와 비슷하다.
= 함수 객체가 받는 인수와 참조되는 메서드가 받는 인수가 같다.