JAVA

태태개발일지 - 김영한 고급JAVA (LAMBDA)

태태코 2025. 5. 26. 15:21
반응형

람다 메서드 참조

 

기존 람다 방식

Lambda a = (int a, int b) -> {return a+b};
Lambda b = (int a, int b) -> {return a+b};

 

 

 

동일한 기능을 함수로 묶을 수 있다.

 

Lambda a = (int a, int b) -> {add(a,b)};
Lambda b = (int a, int b) -> {add(a,b)};


public static int add (a ,b ){
	return a+b;
}

 

다음과 같이  함수로 묶을 수 있다.

 

하지만, 이것 역시 편리하게 사용할 수 있는 방법이 있는 것이다. 그것이 바로
메서드 참조이다.

 

 

메서드 참조의 기본 문법

 

메서드 참조는 (::) 연산자를 사용한다.
  1. 클래스명::메서드명(정적 메서드)
  2. 참조변수::메서드명(인스턴스 메서드)
  3. 클래스명::new(생성자)
  4.  

예시

정적 메서드

IntBinaryOperator operator = (x, y) -> Math.max(x, y);
// 메서드 참조로 변환
IntBinaryOperator operator = Math::max;

 

인스턴스 메서드

Calculator calculator = new Calculator();
IntBinaryOperator operator = calculator::instanceMethod;

 

생성자 메서드

Function<String, Member> function1 = Member::new;
BiFunction<String, String, Member> function2 = Member::new;

 

 

결론

좀더 가시성있고, 편리하게 사용가능하다.

 

반응형