자바스크립트에서는 함수를 값처럼 변수에 할당하고, 이를 호출할 수 있음 (일급 객체)
<aside> ❔ 일급 객체
</aside>
자바에서는 위와 같이 사용이 불가능했지만 자바 8에 람다식이 추가됨
메서드를 하나의 식으로 표현한 것, 익명 함수의 한 종류
int addOperation(int a,int b){
return a+b;
}
(int a, int b) -> a+b
위 함수를 아래처럼 간단하게 표현
매개변수 타입 생략 가능 (매개변수의 타입을 추론할 수 있는 경우)
(a,b) -> a * b
매개변수가 하나인 경우 파라미터의 괄호 생략 가능
a -> a * a
@FunctionalInterface
public interface Printer{
void print();
}
Printer printer1 = new Printer(){
@Override
public void print(){
System.out.println("ㅎㅇ");
}
}
Printer printer2 = ()->System.out.println("ㅎㅇ");