함수형 프로그래밍 기법을 지원하는 자바의 문법요소
메서드를 하나의 식(expression)으로 표현한 것
코드를 매우 간결하면서 명확하게 표현할 수 있다는 큰 장점이 있음
//기존 메서드 표현 방식
void sayhello() {
System.out.println("HELLO!")
}
//위의 코드를 람다식으로 표현한 식
() -> System.out.println("HELLO!")
람다식에서는 기본적으로 반환타입과 이름을 생략할 수 있다 그래서 익명 함수(anonymous function)라 부르기도 한다.
// 기존 방식
int sum(int num1, int num2) {
return num1 + num2;
}
// 람다식
(int num1, int num2) -> {
num1 + num2
}
메서드 바디에 문장이 실행문이 하나만 존재할 때 중괄호와 return 문을 생략할 수 있다.
이 경우, 세미콜론까지 생략 해야한다.
(int num1, int num2) -> num1 + num2
매개변수 타입을 함수형 인터페이스를 통해 유추할 수 있는 경우에는 매개변수의 타입을 생략할 수 있다.
(num1, num2) -> num1 + num2