함수적 인터페이스
1.
- 함수적 인터페이스(functional interface)는 추상메서드가 1개만 정의된 인터페이스
- 람다식은 함수적 인터페이스에 사용 가능
- 람다식을 실행하면 인터페이스를 구현하는 객체가 생성
- 람다식은 이름을 따로 지정하지 않으므로 익명구현객체가 생성
2.
- 인터페이스에는 추상메서드가 있고, 이를 구현해야 메서드로 사용 가능
- 메서드가 1개라면 해당 메서드가 구현하려는 메서드
- 하지만 메서드가 여러 개라면 람다식으로 표현했을때 어떤 메서드를 실행해야 하는지 컴파일러가 알 수 없음
3.
- 함수적 인터페이스는 @FunctionalInterface 애노테이션을 붙일 수 있음
- @FunctionalInterface 애노테이션은 추상메서드가 1개만 선언되도록 표시
- 이 어노테이션이 있으면 인터페이스에 메서드가 2개 이상 선언되면 컴파일 오류가 발생
- 어노노테이션은 선택사항