일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로그래밍
- 개발
- 정보처리기사
- 이펙티브 자바
- 세마포어
- 메모리
- 컴퓨터과학
- github
- 스터디
- OS
- 스프링
- Effective Java
- Public
- 자바
- 운영체제
- 알고리즘
- 컴퓨터공학
- 뮤텍스
- package-private
- 깃허브
- spring
- 깃
- IT
- 우리카드
- CS
- 공채
- 신입사원
- 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 |