2022. 7. 31. 13:57ㆍWeb/JAVA
1. 함수형 인터페이스란 ?
- 추상메서드를 딱 하나만 가지고 있는 인터페이스
- SAM(Single Abstract Method) 인터페이스
- @FuntionalInterface 어노테이션을 가지고 있는 인터페이스
2. 자바에서 함수형 프로그래밍이랑 ?
- 함수를 First class object로 사용할 수 있다.
- 순수 함수 (Pure function)
- 사이드 이팩트가 없다. (함수 밖에 있는 값을 변경하지 않는다.)
- 상태가 없다. (함수 밖에 있는 값을 사용하지 않는다.)
- 고차 함수 (Higher-Order Function)
- 함수가 함수를 매개변수로 받을 수 있고 함수를 리턴할 수도 있다.
- 불변성
3. 자바에서 기본적으로 제공하는 함수형 인터페이스
Function<T , R>
- T타입을 받아서 R타입을 리턴하는 함수인터페이스
R apply(T t)
- - 함수 조합용 메서드
- compose - compose안 함수 실행후 밖에 함수 실행
- andThen - 첫번째함수 실행후 다음함수 실행하고 리턴
BiFuntion<T, U, R>
- 두개의값(T,U)을 받아서 R타입을 리턴하는 함수인터페이스
R apply(T t, U u)
Consumer<T>
- T 타입을 받아서 아무값도 리턴하지 않는 함수 인터페이스
void Accept(T t)
Supplier<T>
- T 타입의 값을 제공하는 함수 인터페이스
T get()
Predicate<T>
- T 타입을 받아서 boolean을 리턴하는 함수 인터페이스
boolean test(T t)
- 함수 조합용 메소드
And
Or
Negate
UnaryOperator<T>
- Function<T, R>의 특수한 형태로, 입력값 하나를 받아서 동일한 타입을 리턴하는 함수 인터페이스
BinaryOperator<T>
- BiFunction<T, U, R>의 특수한 형태로, 동일한 타입의 입렵값 두개를 받아 리턴하는 함수 인터페이스
'Web > JAVA' 카테고리의 다른 글
[Java] Jackson을 활용한 데이터 변환(Json to Java Object) (0) | 2022.08.31 |
---|---|
[JAVA] 자주 사용하는 Lombok 어노테이션 (0) | 2022.08.10 |
[JAVA] DTO, VO 그리고 Entity의 차이 (0) | 2022.08.10 |
[JAVA] JVM 란? (0) | 2022.07.14 |
[JAVA] 기본부터 다시 다지자 (0) | 2022.07.13 |