자바 8부터 함수적 프로그래밍 위해 람다식 지원
람다식을 언어 차원에서 제공
- 람다 계산법에서 사용된 식을 프로그램이 언어에 접목
- 익명 함수(anonymous function)를 생성하기 위한 식
자바에서 람다식을 수용한 이유
- 코드가 매우 간결해진다.
- 컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해 쉽게 집계
자바는 람다식을 함수적 인터페이스의 익명 구현 객체로 취급
람다식 --> 매개변수를 가진 코드 블록 --> 익명 구현 객체
- 어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려있음
함수적 스타일의 람다식 작성법
(타입 매개변수, ...) -> { 실행문; }
- 매개 타입은 런타임시에 대입값 따라 자동 인식 >> 생략 가능
- 매개변수가 1개만 있을 경우 >>소괄호() 생략 가능
- 실행문이 1개만 있다면 >> 중괄호{} 생략 가능
- 매개변수가 없다면 소괄호() 생략 불가!
- 리턴값이 있는 경우, return문 사용
- 중괄호{} 안에 return 문만 있을 경우 >> 중괄호{} 생략 가능
타겟 타입
- 람다식이 대입되는 인터페이스
- 익명 구현 객체를 만들 때 사용할 인터페이스
- 즉, 람다식의 구현대상이 되는 함수적 인터페이스를 해당 람다식의 "Target Type"이라 부른다.
인터페이스 변수 = 람다식;
함수적 인터페이스 ( functional interface )
- 하나의 추상 메소드만 선언된 인터페이스가 타겟 타입
- @FunctionalInterface 어노테이션 >> 두 개 이상의 추상 메소드가 선언되어 있으면 컴파일 오류 발생
예제 1)
매개변수와 리턴값이 없는 추상메소드가 선언된
함수적 인터페이스를 타겟 타입으로 하는 람다식 만들기
예제 2)
매개변수가 1개이고, 리턴값이 없는 추상메소드가 선언된
함수적 인터페이스를 타겟타입으로 하는 람다식 만들기
예제 3)
매개변수가 2개, 리턴값이 있는 추상 메소드가 선언된
함수적 인터페이스를 타겟타입으로 하는 람다식 만들기
'교육과정 기록 > ☕ Java' 카테고리의 다른 글
객체지향 요약2 (0) | 2022.06.01 |
---|---|
람다식 -- [표준 API의 함수적 인터페이스] (0) | 2022.05.19 |
Generic (제네릭) (0) | 2022.05.11 |
외부 프로젝트를 이클립스에서 가져오기 (0) | 2022.04.27 |
[4.20] 객체의 직렬화 (Serialization) / 역직렬화 (0) | 2022.04.20 |