더북(TheBook)

자바 8의 여러 API에서 java.util.function 패키지에 있는 인터페이스를 사용하므로 앞으로 다른 곳에서도 접하게 될 것이다. 하지만 현재 사용하고 있는 어떤 API에 속한 함수형 인터페이스로도 람다 표현식을 동일하게 잘 변환할 수 있다는 점을 명심하기 바란다.

<Note>

함수형 인터페이스에 @FunctionalInterface 애너테이션을 붙일 수 있다. 이렇게 하면 두 가지 장점이 있다. 첫째, 컴파일러에서 애너테이션이 붙은 엔티티가 단일 추상 메서드를 갖춘 인터페이스인지 검사한다. 둘째, javadoc 페이지에서 해당 인터페이스가 함수형 인터페이스임을 알리는 문장을 포함한다.

 

애너테이션을 반드시 사용해야 하는 것은 아니다. 정의에 따르면, 단일 추상 메서드를 갖춘 모든 인터페이스가 곧 함수형 인터페이스다. 그럼에도 @FunctionalInterface 애너테이션을 사용하는 것은 좋은 생각이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.