함수형 인터페이스란?
함수형 인터페이스는 1개의 추상 메소드(abstract method)를 갖고 있는 인터페이스입니다. SAM(Single Abstract Method)이라고도 부릅니다.
일반형
인터페이스 | 파라미터 타입 | 리턴 타입 |
Runnable, Callable | ||
Function<T, R> | T | R |
Consumer | T | |
Predicate | T | boolean |
Supplier | T | |
UnaryOperator | T | T |
Runnable은 java.lang 패키지에, Callable은 java.util.concurrent 패키지에, 나머지 함수형 인터페이스는 java.util.function 패키지에 들어 있습니다.
위 인터페이스들을 기본형으로, 인자가 2개인 BiConsumer, BiPredicate 등이 추가로 정의되어 있습니다.
Function<T, R>
public interface Function<T, R> {
R apply(T t);
}
가장 일반적인 함수형 인터페이스인 Function은 한 인자를 받아 결과를 반환하는 함수를 나타내는 인터페이스입니다.
Consumer
public interface Consumer<T> {
void accept(T t);
}
Consumer는 파라미터를 받아 아무것도 반환하지 않는 함수형 인터페이스입니다
Predicate
public interface Predicate<T> {
boolean test(T t);
}
Predicate는 파라미터 하나를 받아 조건에 따라 true, false를 반환하는 함수를 나타냅니다.
Supplier
public interface Supplier<T> {
T get();
}
Supplier는 한 객체를 반환하는 함수를 나타냅니다.
UnaryOperator
public interface UnaryOperator<T> extends Function<T, T> { ... }
UnaryOperator(단항 연산자)는 Function의 특수형입니다. T 타입 객체를 받아 T 타입 객체를 반환하는 함수를 나타냅니다.
예를 들어 수학의 -(negate) 연산자를 보면 숫자를 받아 -1을 곱한 숫자를 반환하는데 이걸 UnaryOperator의 한 예로 볼 수 있습니다.
반응형
'etc' 카테고리의 다른 글
[C++] shrink_to_fit (0) | 2022.11.26 |
---|---|
트위치 채팅창에서 유저 차단하는 법 (0) | 2020.09.24 |
[MySQL] 사운덱스 (Soundex) (0) | 2020.09.24 |
[MySQL] 영어 소문자, 대소문자 만들기 (LOWER, UPPER) (0) | 2020.09.24 |
[MySQL] 문자열 앞, 뒤 특정 문자열 제거 (TRIM) (0) | 2020.09.24 |