함수형 인터페이스
- 추상 메서드(구현 없이 선언만 된 메서드)가 1개만 정의된 인터페이스
- default 메서드: 인터페이스 안에서 메서드 구현을 가질 수 있도록 허용하는 문법
- static 메서드: 객체를 생성하지 않고도 호출할 수 있는 메서드 (공용 기능, 유틸리티 기능을 활용할 때 사용)
- 람다 표현식: 자바의 메소드를 간결한 함수식으로 표현한 것
함수형 인터페이스의 표준 API 종류
인터페이스 | 추상 메서드 | lambda |
Runnable | void run() | () -> void |
Consumer<T> | void accept(T t) | T -> void |
Supplier<T> | T get() | () -> T |
Function<T, R> | R apply(T t) | T -> R |
Predicate<T> | boolean test(T t) | T -> boolean |
Comparator<T> | int compare(T o1, T o2) | (T, T) -> int |
1. Runnable
- 인수를 받지 않고 리턴값이 없으며 실행만 하는 람다 함수 형태를 받는 메서드를 제공합니다.
- void run(): 인수 없이 리턴을 하지 않는 함수 형태, 대표적으로 스레드의 매개 변수로 이용합니다.
2. Consumer<T>
- 인자를 받아들이고 소비만 하는 함수를 제공합니다. (객체를 전달받아서 특정 작업을 수행하는 경우)
- void accept(T t): 인수가 존재하고, 리턴을 하지 않는 함수 형태입니다.
3. Supplier<T>
- 인수 없이 리턴값만 반환하는 함수를 제공합니다. (조건에 맞는 객체를 반환하는 경우)
- T get(): 매개변수를 사용하지 않고, 리턴만 하는 함수 형태입니다.
4. Function<T, R>
- 하나의 인수(T)를 받아들이고 결과를 생성(R)하는 함수를 제공합니다. (인수를 하나의 결과로 반환할 때 사용)
- R apply(T t): 매개값을 매핑(타입 변환)해서 리턴합니다.
5. Predicate<T>
- 하나의 인수를 받아 true/false를 리턴하는 함수를 제공합니다. (조건에 맞는 객체를 필터링하는 경우)
- boolean test(T, t): 매개값이 조건에 맞는지 단정해서 boolean 리턴
6. Comparator<T>
- T타입 인수 값을 연산해서 int 타입을 리턴하는 함수를 제공합니다. (객체 비교)
- int compare(T o1, T o2)
- 음수: o1 < o2, 0: o1 = o2, 양수: o1 > o2
'CS' 카테고리의 다른 글
[CS] Call by Value, Call by Reference (1) | 2025.08.31 |
---|---|
[CS] clustered Index, non-clustered Index (4) | 2025.08.27 |
[CS] JVM Memory Structure (6) | 2025.08.15 |
[Tomcat] Tomcat의 핵심 컴포넌트와 동작 과정에 대해 분석해보자 (7) | 2025.08.09 |
[Architecture] MSA (vs MA) (1) | 2024.10.22 |