출처 : https://bamdule.tistory.com/75
람다 함수(Lambda Function)란?
람다 함수는 함수형 프로그래밍 언어에서 사용되는 개념으로 익명 함수라고도 한다.
Java 8 부터 지원되며, 불필요한 코드를 줄이고 가독성을 향상시키는 것을 목적으로 두고있다.
람다 함수의 특징
메소드의 매개변수로 전달될 수 있고, 변수에 저장될 수 있다.
즉, 어떤 전달되는 매개변수에 따라서 행위가 결정될 수 있음을 의미한다.
컴파일러 추론에 의지하고 추론이 가능한 코드는 모두 제거해 코드를 간결하게 한다.
람다식 표현
파라미터와 몸체로 구분된다.
파라미터와 몸체 사이에 -> 구분을 추가하여 람다식을 완성시킨다.
몸체 부분이 단일 행일 경우 중괄호와 return문을 생략할 수 있다.
( 파라미터 ) -> { 몸체 }
익명함수를 람다식으로 변경하기
기존 방법
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread!");
}
}).start();
람다식
new Thread(() -> {
System.out.println("Thread!");
}).start();
기존의 방식은 Thread 사용 시 Runnable 인터페이스를 익명함수로 구현하였지만, Java 1.8부터 람다 함수을 통해 구현할 수 있게 되었다.
람다 함수를 매개변수로 넘기기 위해서는 메소드의 매개변수가 @FunctionalInterface로 선언된 인터페이스여야한다.
@FunctionalInterface이 선언된 인터페이스를 함수 인터페이스라 불리는데, 조건으로 반드시 추상 메소드 한개만 정의되어 있어야 한다.