----
람다식
자바 8부터 함수적 프로그래밍 위해 람다식 지원
람다식(Lambda Expressions)을 언어 차원에서 제공
람다 계산법에서 사용된 식을 프로그래밍 언어에 접목
익명 함수(anonymous function)을 생성하기 위한 식
자바에서 람다식을 수용한 이유
코드가 매우 간결해진다.
컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해 쉽게 집계
자바는 람다식을 함수적 인터페이스의 익명 구현 객체로 취급
람다식 → 매개변수를 가진 코드블록 → 익명 구현 객체
어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려있음
Runnable runnable = () -> { ... };
**함수적 스타일의 람다식 작성법
(타입 매개변수, ...) -> { 실행문; ... }
(int a) -> { System.out.println(a); }
**람다식 생략 조건
매개변수 타입은 런타임시에 대입값 따라 자동 인식하므로 생략 가능
하나의 매개변수만 있을 경우에는 괄호( ) 생략 가능
매개변수 없다면 괄호 ( ) 생략 불가
하나의 실행문만 있다면 중괄호 { } 생략 가능
리턴값이 있는 경우, return 문 사용
(원래 리턴값이 있는 메소드는 return문 반드시 사용하는거임 (p221 참고))
중괄호 { }에 return 문만 있을 경우, 중괄호 + return 생략 가능
*** 람다는 왜 쓰는걸까???
*** 추상메소드는 자식클래스에서 오버라이드로 재정의해줘야한다
1. implemets 하는 자식 클래스를 만들어서 오버라이드로 재정의하고
실행 클래스를 만들어서 재정의된 메소드를 호출한다.
2. 1처럼 하면 클래스가 홍수가 난다!!! 익명구현객체 코딩기법을 활용하자
3. 2도 좋은데 더 간단하게 하자!!! 람다식 생략 조건을 활용하자
---
함수적 인터페이스 (@FunctionalInterface)
모든 인터페이스를 람다식의 타겟으로 삼을 수는 없고,
오로지 하나의 추상메소드만 선언된 인터페이스만이 람다식의 타겟 타입이 될 수 있음
이를 함수적 인터페이스(@FunctionalInterface)라고 한다
1. 매개변수와 리턴값이 없는 람다식
2. 매개변수가 있고 리턴값이 없는 람다식
3. 매개변수도 있고, 리턴타입도 있는 람다식
'국비학원' 카테고리의 다른 글
[국비지원] KH 정보교육원 38일차 (1/2) (0) | 2022.05.19 |
---|---|
[국비지원] KH 정보교육원 37일차 (0) | 2022.05.18 |
[국비지원] KH 정보교육원 36일차 (1/2) (0) | 2022.05.17 |
[국비지원] KH 정보교육원 35일차 (0) | 2022.05.14 |
[국비지원] KH 정보교육원 34일차 (0) | 2022.05.13 |