Operator 함수적 인터페이스에 대해서도 살펴보겠습니다. 사실, Operator 함수적 인터페이스의 경우 직전에 살펴보았던 Function 함수적 인터페이스와 공통점이 있습니다. 바로 추상 메서드가 applyxxx( ) 형태로 이루어져 있고, 이 메서드는 파라미터와 리턴 값을 모두 갖습니다.
하지만, Function 함수적 인터페이스와 결정적인 차이가 있습니다. Function 함수적 인터페이스의 추상 메서드들은 주요한 목적이 파라미터를 통해 값을 받고, 리턴 값의 데이터 타입으로 매핑(타입을 변환)하는 역할을 수행한다고 했습니다. 하지만 Operator의 추상 메서드는 주요 목적이 파라미터의 값을 받고, 그 값으로 연산을 수행하고 동일한 타입으로 리턴 값을 제공하는 것입니다. Function과는 구성은 비슷하지만 목적이 상당히 다릅니다.
각각의 인터페이스와 추상메서드를 아래와 같이 살펴보겠습니다.
인터페이스 명 | 추상 메서드 | 설명 |
BinaryOperator<T> | BiFunction<T, U, R>의 하위 인터페이스 | T와 U를 연산한 후 R 리턴 |
UnaryOperator<T> | Function<T, T>의 하위 인터페이스 | T를 연산한 후 T리턴 |
DoubleBinaryOperator | double applyAsDouble(double, double) | 두 개의 double 연산 |
DoubleUnaryOperator | double applyAsDouble(double) | 한 개의 double 연산 |
IntBinaryOperator | int applyAsInt(int, int) | 두 개의 int 연산 |
IntUnaryOperator | int applyAsInt(int) | 한 개의 int 연산 |
LongBinaryOperator | long applyAsLong(long, long) | 두 개의 long 연산 |
LongUnaryOperator | long applyAsLong(long) | 한 개의 long 연산 |
* Function 인터페이스의 하위 인터페이스가 등장했습니다. 아래 아티클에서 다시 한번 살펴보세요
* 더불어 하위 인터페이스 사용과 관련해서, 살펴본 지 너무 오래되어서 분명 잊어버린 분들이 있을 것입니다. 여기 인터페이스의 상속 아티클에서 다시 한번 기억을 되짚어보고 오시기를 바랍니다.
간단한 예시를 들어볼까요? IntBinaryOperator라는 인터페이스를 사용한다고 생각해 봅시다. 여기서 applyAsInt( )라는 추상 메서드를 구현하게 되지요. 아래의 예제 람다식에서는, int 값 a, b를 받아 연산을 한 후 결과 값으로 int를 리턴하게 됩니다.
IntBinaryOperator operator = (a, b) -> {
// ...
return int값;
}
다음 아티클에서 Operator 함수적 인터페이스의 실제 사용 예제 코드를 작성해 보겠습니다.
'Programming > JAVA' 카테고리의 다른 글
람다식(4) - 표준 API의 함수적 인터페이스 6 : Predicate Functional Interface (0) | 2023.07.11 |
---|---|
람다식(4) - 표준 API의 함수적 인터페이스 5 : Operator Functional Interface 2 (0) | 2023.07.03 |
람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 2 (0) | 2023.06.14 |
람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 1 (0) | 2023.06.10 |
람다식(4) - 표준 API의 함수적 인터페이스 3 : Supplier Functional Interface (0) | 2023.06.05 |