Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- IntelliJ
- Jetpack
- leetcode
- Room
- livedata
- ViewModel
- Java
- homebrew
- FRAGMENT
- Java8
- Version
- Database
- programmers
- Android
- github
- sourcetree
- androidstudio
- Kotlin
- git
- library
- ReactiveProgramming
- rxjava
- Algorithm
Archives
- Today
- Total
Learn & Run
Java - 함수형 인터페이스와 람다 표현식 본문
목표
RxJava에서 사용되는 Java의 기본지식을 리뷰해보고, Java 8부터 지원하는 함수형 인터페이스와 람다의 개념을 이해해보고 사용해보도록 합니다.
1. 함수형 인터페이스
- Java의 인터페이스입니다.
- 단 하나의 추상 메서드만 가지고 있는 인터페이스입니다. (예외로 Java 8에서 새롭게 도입된 Predicate, Consumer 인터페이스처럼 Default 메서드는 포함할 수 있습니다)
- 함수형 인터페이스의 메서드를 람다식으로 작성해서 다른 메서드의 파라미터로 전달할 수 있습니다.
- 람다식 자체를 해당 함수형 인터페이스를 구현한 클래스의 인스턴스로 취급합니다.
- Java 8에서 새롭게 추가된 함수형 인터페이스(Predicate, Consumer, Function) 외에 기존에 작성되어 있는 하나의 추상 메서드만 가지고 있는 Java 인터페이스(Comparable, Runnable) 또한 함수형 인터페이스로 취급할 수 있습니다.
2. 람다 표현식
- 함수형 인터페이스를 구현한 클래스이며 익명 클래스의 메서드를 단순화 한 표현식입니다.
- 함수형 인터페이스의 메서드를 람다 표현식으로 작성하여 다른 메서드의 파라미터로 전달할 수 있습니다.
- 즉, 람다 표현식 전체를 해당 함수형 인터페이스를 구현한 클래스의 인스턴스로 취급합니다.
3. 람다 표현식의 구성
- 람다 파라미터 : 함수형 인터페이스에서 구현해야 될 메서드가 전달받아야 할 파라미터
- 람다 몸체 : 함수형 인터페이스에서 구현해야 될 몸체
- 람다식 사용전과 사용후
4. 함수 디스크립터(Function Descriptor)
- 함수형 인터페이스의 추상 메서드를 설명해놓은 시그니처를 함수 디스크립터라고 합니다.
- Java 8에서는 java.util.function 패키지로 다양한 새로운 함수형 인터페이스를 지원합니다.
- Predicate 예제
- Consumer 예제
- Function 예제
'Java' 카테고리의 다른 글
RxJava - 리액티브에서의 생성 연산자 (0) | 2021.01.20 |
---|---|
Java - 메서드 래퍼런스 이해하기 (0) | 2021.01.19 |
RxJava - 또 다른 생산자 Single, Maybe와 Completable (0) | 2021.01.12 |
RxJava - 배압 전략(BackpressureStrategy)의 종류 (0) | 2021.01.08 |
RxJava - Flowable과 Observable 이해하기 (0) | 2021.01.08 |