<람다식, 람다 함수>
Java에서 함수형 프로그래밍을 구현하는 방식으로 자바8부터 지원한다.
lambda : interface 구현 객체 생성
- interface로부터 물려받은 추상 메서드를 오버라이딩
- 익명 함수
인터페이스타입 변수 = (매개변수) -> {수행문}
함수의 이름과 반환형을 없애고 -> 사용
() -> {} // 기본형
(int i) -> {i + 1}
i -> i + 1 //매개변수가 하나면 자료형과 () 생략 가능, 수행문이 한 문장이면 {} 생략 가능
(int i, int n) -> i + n
(i, n) -> i + n //매개변수 타입이 같으면 타입 생략 가능
(int i, String s) -> i + s //타입이 다르면 생략 불가
i -> {return i + 1;} //수행문이 return문이면 {}생략 불가
i -> i + 1 //단, 수행문이 리턴문 하나라면 {}, return 둘 다 생략 가능
- 추상 메서드가 단 하나 있는 인터페이스(@FunctionalInterface)만 람다식으로 사용 가능
@FunctionalInterface
public interface Math {
public int Calc(int a, int b);
}
public static void main(String[] args){
Math sum = (a, b) -> a + b;
}
'JAVA' 카테고리의 다른 글
| Java Stream (0) | 2022.01.13 |
|---|---|
| Java 내부(inner)클래스 (0) | 2022.01.06 |
| Java 날짜와 시간 표현 (0) | 2021.12.27 |
| Java java.util / Collection,List ,Set,Map인터페이스 / 주요 메서드 정리 (0) | 2021.12.22 |
| Java Class 클래스, java.util 패키지, 제네릭<> (0) | 2021.12.22 |