본문 바로가기

이펙티브 자바

[이펙티브 자바] 아이템 43. 람다보다는 메서드 참조를 사용하라

 

메서드 참조(Method Reference) : 자바에서 메서드를 참조하는 방법을 말한다. 람다 표현식이나 익명 클래스에서 메서드를 호출하는 것 대신에, 이미 존재하는 메서드의 이름을 사용하여 해당 메서드를 참조하는 방식이다.

 

  1. 정적 메서드 참조(Static Method Reference): 클래스이름::정적메서드이름 형태로 사용된다.
  2. 인스턴스 메서드 참조(Instance Method Reference): 참조변수::인스턴스메서드이름 형태로 사용된다.
  3. 클래스 생성자 참조(Constructor Method Reference): 클래스이름::new 형태로 사용되며, 인스턴스를 생성하는 데 사용된다.

 

 

// 람다 표현식
Function<String, Integer> toInteger = s -> Integer.parseInt(s);

// 메서드 참조로 변경
Function<String, Integer> toInteger = Integer::parseInt;

핵심 정리 : 메서드 참조는 람다의 간단명료한 대안이 될 수 있다. 메서드 참조 쪽이 짧고 명확하다면 메서드 참조를 쓰고, 그렇지 않을 때만 람다를 사용하라.