람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다.
Java 8의 핵심! 함수형 프로그래밍 방식을 사용하기 위해 람다를 도입했다.
목적
불필요한 코드를 줄이고, 가독성을 높이기 위함
메소드가 한번만 사용되고 메소드(실행문)의 길이가 짧을 때 유용하다.
병렬처리, 이벤트 처리, 스트림 처리 등.. 에 많이 사용
람다식으로 구현하기 위한 인터페이스는 추상 메소드가 단 1개
이어야 한다.
2개 이상인 경우 어떤 메소드를 람다식으로 표현했는지 알 수 없어서
이다.
예를 들어 보자. Calculator라는 람다를 사용하기 위한 인터페이스를 만들어, 사용자는 잘 사용하고 있었다. 그러다 인터페이스 설계자가 인터페이스에 추상 메서드를 추가했다.
public interface Calculator {
public int cal(int num1, int num2);
**public int cal2(int num1);**
}
eclipse
intellij
그랬더니 사용자 코드에서 에러가 나기 시작한다. → 사용자가 에러가 난다고 알려준다. → 설계자는 이제서야 해당 인터페이스가 람다식을 위한 단일 추상메소드를 가진 인터페이스였음을 알 수 있다.