스터디/이펙티브 자바

[Effective Java] Item43. 람다보다는 메서드 참조를 사용하라

📝 작성 : 2022.07.03  ⏱ 수정 : 
728x90

메서드 참조

List.of(1, 2, 3, 4).forEach(i -> System.out.println(i));
List.of(1, 2, 3, 4).forEach(System.out::println); // 메서드 참조

메서드 참조를 사용할 때 주의사항

대부분의 경우 람다에 비해 코드가 간결하고 명확해지지지만 람다에서 사용하는 매개변수 이름이 좋은 가이드가 된다면 코드가 더 길더라도 오히려 읽기가 더 쉬워질 것입니다.

또한, 메서드의 이름이 너무 길다면 오히려 람다가 더 간결해 질 수 있습니다.

service.execute(() -> action());
service.execute(GoshThisClassNameIsHumongous::action); // 메서드 참조

메서드 참조의 유형

  1. 정적 메서드 참조
  2. 한정적 인스턴스 메서드 참조
  3. 비한정적 인스턴스 메서드 참조
  4. 클래스 생성자 참조
  5. 배열 생성자 참조
반응형