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;
}
다음과 같이 함수로 묶을 수 있다.
하지만, 이것 역시 편리하게 사용할 수 있는 방법이 있는 것이다. 그것이 바로
메서드 참조이다.
메서드 참조의 기본 문법
메서드 참조는 (::) 연산자를 사용한다.
- 클래스명::메서드명(정적 메서드)
- 참조변수::메서드명(인스턴스 메서드)
- 클래스명::new(생성자)
예시
정적 메서드
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;
결론
좀더 가시성있고, 편리하게 사용가능하다.

반응형