자바8 Function<T,R> interface

728x90

 

 

오늘 공부할 내용은 

함수형 인터페이스입니다.

자바에서 기본적으로 제공하는 라이브러리인 Function<T,R> interface에 대해 알아보도록 하겠습니다.

 

docs.oracle.com/javase/8/docs/api/java/util/function/Function.html

 

Function (Java Platform SE 8 )

 

docs.oracle.com

java.util.function 로 제공되는 인터페이스이며, 

import 하여 사용합니다.

 

Function<T,R>

T - 함수에 대한 입력 유형이며

R - 함수 결과의 유형입니다.

 

함수형 인터페이스이므로 람다식 또는 메서드 참조에 대한 할당 대상으로 사용 가능하다고 합니다.

 

이 함수형 인터페이스에는

 

4개의 메소드가 존재합니다.

1개의 추상 메소드 apply()와

2개의 기본 메소드 andThen(), compose()와

1개의 스태틱 메소드 identity() 가 있습니다.

 

입력을 Integer로 받고 String형으로 반환되는 fun을 만들었습니다.

람다식으로 i를 입력받아 i+"입니다" 라는 String을 반환합니다.

이때 출력문에 fun.apply() 로 실행하면 return값을 받아올 수 있습니다.

 

i+i를 반환하는 fun과

i*i를 반환라는 fun2가 있습니다.

 

출력 결과입니다.

 

이 compose() 기본 메서드는 V라는 before 함수.

즉, before 함수를 먼저 적용을 한 후 다음 함수를 실행합니다.

그러니 입력된 3을 i*i인 fun2를 실행을 하여 9를 만들고 그 수로

fun.apply()를 실행하니 9+9가 되어 18이 출력된 것을 확인 할 수 있습니다.

 

andThen()은 compose()와 반대로 V가 after이 되는 것 입니다.

fun이 먼저 실행되어 3+3 = 6 이 되고, 그 수로 fun2를 실행해 6*6 인 36이 반환되어

36이 출력된 것을 확인 할 수 있습니다.

 

항상 입력 인수를 반환하는 함수입니다.

입력한 인수의 값이 그대로 출려됩니다.

 

 

반응형