Java

[Java] 메서드 참조(Method Reference)

메바동 2021. 5. 21. 09:53
728x90

👓 Overview

메서드 참조(Method Reference)를 사용하면 불필요한 매개변수를 제거하고 :: 기호를 사용하여 해당 메서드를 표현할 수 있다.

 

클래스명::메서드명
또는
객체명::메서드명

 

💡 How to use?

메서드 표현식은 람다 표현식에 대응된다.

 

✔ 클래스명::인스턴스메서드

- 첫 번째 파라미터가 메서드의 수신자가 되고, 나머지 파라미터는 해당 메서드의 인자로 전달된다.

 

(x, y) -> x.compareToIgnoreCase(y)  // lambda expression
String::compareToIgnoreCase         // method reference

 

 

✔ 클래스명::정적메서드

- 모든 파라미터가 정적 메서드의 인자로 전달된다.

 

x -> Object.isNull(x) // lambda expression
Object::isNull        // method reference

 

 

✔ 객체명::인스턴스메서드

- 주어진 객체에서 메서드가 호출되며, 파라미터는 모두 인스턴스 메서드의 인자로 전달된다.

 

x -> System.out.println(x)  // lambda expression
System.out::println         // method reference

 

 

✔ 생성자 참조

- 메서드 이름이 new라는 점만 제외하면 메서드 참조와 같은 방식으로 사용한다.

728x90