일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CS
- OS
- 우리카드
- 깃허브
- Public
- 자바
- 스프링
- 개발
- 이펙티브 자바
- 프로그래밍
- 신입
- 공채
- 알고리즘
- 디지털
- IT
- Effective Java
- 컴퓨터과학
- 깃
- 컴퓨터공학
- 메모리
- package-private
- 세마포어
- 스터디
- 신입사원
- 운영체제
- github
- 정보처리기사
- spring
- java
- 뮤텍스
Archives
- Today
- Total
주니어 개발자 성장기
함수형 인터페이스 본문
개요
함수형 인터페이스란?
인터페이스인데 추상 메서드가 딱 하나만 존재하는 것. @FunctionalInterface
어노테이션을 사용해서 컴파일러의 도움을 받고 함수형 인터페이스임을 명시하는것이 좋다. 참고로 인터페이스에서는 추상 메서드에 abstract 키워드를 생략해도 된다.
실제 사용
자바에서 기본적으로 제공하는 함수형 인터페이스가 많으므로 구현하기 전에 자신에게 맞는 것이 있는지 먼저 살펴보자!
Function<T, R>
T 타입을 매개변수로 받아 R타입을 리턴하는 함수형 인터페이스compose
,andThen
메서드로 다른Function
인스턴스와 조합이 가능하다.Consumer<T>
T타입을 매개변수로 받아 리턴이void
인 함수형 인터페이스Supplier<T>
아무런 매개변수가 없고 T타입을 리턴하는 함수형 인터페이스Predicate<T>
T타입을 매개변수로 받아 boolean 값을 반환하는 함수형 인터페이스and
,or
등의 메서드로 다른Predicate
인스턴스와 조합할 수 있다.
이외에도 기본적으로 제공되는 다양한 함수형 인터페이스들이 있으므로 필요할 때마다 찾아서 쓰자!
또한, 람다와 메서드 레퍼런스 형식으로도 많이 구현되어 쓰인다. 람다와 메서드 레퍼런스는 다음 포스팅에 다루도록하겠다.
'Java' 카테고리의 다른 글
Comparable과 Comparator (0) | 2023.07.15 |
---|---|
(22.09.08)Java는 call by reference를 쓰지 않는다. (0) | 2022.09.08 |