일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MongoDB
- spring
- gradle
- dynamic query
- smart cast
- 오라클
- 오라클 디비
- oracle
- 문법 정리
- hyperledger
- 자바
- resilience4j
- 학점
- 리눅스
- 프로젝트
- auto configure
- JVM
- 티스토리
- K6
- 초대장
- 알고리즘
- 운영체제
- 자바 프로젝트
- 파이썬
- jsp
- SQL
- 유사코드
- 백준 알고리즘
- 파이썬 소스
- c#
- Today
- Total
모종닷컴
자바 8 - 람다식 본문
1. 람다식이란 무엇인가?
자바에서 함수적 프로그래밍을 위해 자바 8부터 람다식을 지원하게 되었다.
람다식을 사용함으로써 코드가 매우 간결해지고, 필터링을 통해 결과를 쉽게 집계할 수 있게 되었다.
람다식은 ()->{....};의 형식으로 괄호안에는 매개변수가, 중괄호 안에는 실행코드가 들어가게 된다.
2. 람다식은 인터페이스 변수에 대입이 가능하다.
람다식은 기본적으로 인터페이스의 익명 구현 객체를 생성하게 된다. 하지만 모든 인터페이스에 대하여 사용할 수는 없다. 두 개 이상의
추상 메소드가 존재하는 인터페이스는 람다식을 이용하여 구현할 수 없다(오직 한 개의 메소드만 있는 인터페이스만 가능하다는 소리)
3. 람다식은 클래스의 필드 , 메소드 및 로컬 변수를 사용할 수 있다.
클래스의 필드나 메소드의 경우 제약 없이 사용이 가능하지만, 로컬 변수는 제약이 있다. 로컬 변수 혹은 매개 변수를 읽는 것 까지는 가능
하지만 이 변수의 값들을 변경할 수 없다.
4. 표준 API의 함수적 인터페이스에 관하여 사용이 가능하다.
즉 하나의 메소드만을 가지고 있는 인터페이스 또한 익명 구현 객체로 표현이 가능하다는 소리이다.
5. 람다식은 메소드를 참조할 수 있다.
예를 들어 두 개의 값을 더하는 람다식이라고 하면 (a,b)->{return a+b};라는 익명 구현 객체를 만들수도 있지만, Math::max; 라는 식으로도
Math의 메소드를 참조할 수 있다.
참조할 때에도 법칙이 있다.
정적 메소드(static)를 참조하는 경우 [클래스 :: 메소드], 일반 메소드일 경우 [인스턴스 :: 메소드]로 표현이 가능하다.
6. 람다식은 생성자 참조도 가능하다
생성자를 참조할 경우에는 [클래스 :: new]의 형태로 기술한다
'Programming > JAVA' 카테고리의 다른 글
자바8 - 제네릭 (2) | 2018.09.03 |
---|---|
ArtifactTransferException: Failure to transfer ... (4) | 2018.08.27 |
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter (0) | 2018.05.27 |
메이븐(Maven)이란? (0) | 2018.03.17 |
JVM, JRE, JDK란 무엇인가? (0) | 2018.01.13 |