앞서 살펴본 메서드 참조의 개념을 활용해서 정적(static) 메서드를 참조하는 경우와 인스턴스 메서드를 참조하는 경우를 각각 살펴보도록 하겠습니다.
// 정적 메서드 참조
클래스 :: 메서드
// 인스턴스 메서드 참조. 객체를 먼저 생성한다.
참조변수 :: 메서드
위의 케이스에 대해서는 예제를 통해서 살펴보도록 하겠습니다. Calculator라는 클래스에서 정적 / 인스턴스 메서드를 각각 선언하고 이를 람다식을 통해서 사용하는 형태로 구현해 보겠습니다.
public class Calculator {
public static int staticMethod(int x, int y) {
return x + y;
}
public int instanceMethod(int x, int y) {
return x + y;
}
}
import java.util.function.IntBinaryOperator;
public class ExampleMain {
public static void main(String[] args) {
IntBinaryOperator operator;
// 정적 메서드의 참조
operator = (x, y) -> Calculator.staticMethod(x, y);
System.out.println("Result 1: " + operator.applyAsInt(100, 200));
operator = Calculator :: staticMethod;
System.out.println("Result 2: " + operator.applyAsInt(300, 400));
// 인스턴스 메서드의 참조
Calculator obj = new Calculator();
operator = (x, y) -> obj.instanceMethod(x, y);
System.out.println("Result 3: " + operator.applyAsInt(500, 600));
operator = obj :: instanceMethod;
System.out.println("Result 4: " + operator.applyAsInt(700, 800));
}
}
/* 출력
Result 1: 300
Result 2: 700
Result 3: 1100
Result 4: 1500
*/
'Programming > JAVA' 카테고리의 다른 글
람다식(5) - 메서드 참조 4 : 생성자 참조 (0) | 2023.09.19 |
---|---|
람다식(5) - 메서드 참조 3 : 파라미터의 메서드 참조 (0) | 2023.09.13 |
람다식(5) - 메서드 참조 1 : 메서드 참조의 개념 (1) | 2023.08.31 |
람다식(4) - 표준 API의 함수적 인터페이스 9 : minBy(), maxBy() 정적 메서드 (1) | 2023.08.28 |
람다식(4) - 표준 API의 함수적 인터페이스 8 : 디폴트 메서드 and(), or(), negate() 그리고 정적 메서드 isEqual() 2 (0) | 2023.08.17 |