본문 바로가기

Programming/JAVA

람다식(4) - 표준 API의 함수적 인터페이스 5 : Operator Functional Interface 1

java logo image

 

 

 

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 인터페이스의 하위 인터페이스가 등장했습니다. 아래 아티클에서 다시 한번 살펴보세요

 

 

람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 1

이번 아티클에서는 Function 함수적 인터페이스에 대해서 살펴보겠습니다. Function 함수적 인터페이스의 특징은, 파라미터 값을 받아 리턴 값으로 타입 변환(매핑)하는 역할을 한다는 점입니다. 즉,

nozeroslope.tistory.com

 

* 더불어 하위 인터페이스 사용과 관련해서, 살펴본 지 너무 오래되어서 분명 잊어버린 분들이 있을 것입니다. 여기 인터페이스의 상속 아티클에서 다시 한번 기억을 되짚어보고 오시기를 바랍니다.

 

 

인터페이스(11) - 인터페이스의 상속

인터페이스 역시, 클래스와 마찬가지로 다른 인터페이스를 상속할 수 있습니다. 주의할 것은 구현 클래스가 아니라 인터페이스 자체가 다른 인터페이스를 상속한다는 점입니다. 인터페이스 역

nozeroslope.tistory.com

 

 


 

 

간단한 예시를 들어볼까요? IntBinaryOperator라는 인터페이스를 사용한다고 생각해 봅시다. 여기서 applyAsInt( )라는 추상 메서드를 구현하게 되지요. 아래의 예제 람다식에서는, int 값 a, b를 받아 연산을 한 후 결과 값으로 int를 리턴하게 됩니다. 

IntBinaryOperator operator = (a, b) -> {
    // ...
    return int값;
}

 

다음 아티클에서 Operator 함수적 인터페이스의 실제 사용 예제 코드를 작성해 보겠습니다.