오늘 공부할 내용은
함수형 인터페이스입니다.
자바에서 기본적으로 제공하는 라이브러리인 Function<T,R> interface에 대해 알아보도록 하겠습니다.
docs.oracle.com/javase/8/docs/api/java/util/function/Function.html
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이 출력된 것을 확인 할 수 있습니다.
항상 입력 인수를 반환하는 함수입니다.
입력한 인수의 값이 그대로 출려됩니다.
'Back-End > JAVA' 카테고리의 다른 글
Stream() 의 특징과 기본적인 내용 (0) | 2021.04.29 |
---|---|
Predicate<T> interface (0) | 2021.04.29 |
자바8 - 인터페이스의 기본 메소드와 스태틱 메소드 (0) | 2021.04.08 |
자바 indexOf() - 문자열 중 해당문자 위치 찾기 (0) | 2021.04.07 |
자바 charAt(int i) -'0' 에 대해서 문자를 정수형으로? (0) | 2021.04.05 |