메서드 참조는 람다의 간단명료한 대안이 될 수 있다.
메서드 참조 쪽이 짧고 명확하다면 메서드 참조를 쓰고, 그렇지 않을 때만 람다를 사용하라.
람다보다 메서드 참조가 간결
// 키가 맵 안에 없다면 키와 숫자 1을 매핑하고, 이미 있다면 기존 매핑 값을 증가시킴. 람다 이용 map.merge(key, 1, (count, incr) -> count + incr); map.merge(key, 1, Integer::sum); // 위의 람다를 메서드 참조로 변형하여 더 깔끔하게 만듦
- 어떤 람다에서는 매개변수의 이름 자체가 프로그래머에게 좋은 가이드가 되기도 하기에, 이럴 때는 메서드 참조보다 읽기 쉽고 유지보수도 쉬울 수 있음
메서드 참조보다 람다가 간결한 경우
- 메서드와 람다가 같은 클래스에 있을 때
service.execute(GoshThisClassNameIsHumongous::action); service.execute(() -> action());
- 위와 같은 유형으로 Function::identity() 보다 x → x 의 람다를 사용하는 편이 코드도 짧고 명확하다