네이밍이 훌륭하다.
지금의 이름이 API에서 자주 사용되는 그 용도를 잘 설명해주고 있다.
구현하는 쪽에서 반드시 지켜야 할 규약을 담고 있다.
유용한 디폴트 메서드를 가득 담고 있다.
이처럼 3가지 중 하나 이상의 이유가 있다면 직접 함수형 인터페이스를 구현할지 고민해도 좋다.
@FunctionInterface
이 어노테이션이 달린 인터페이스가 람다용으로 설계된 것임을 알려준다. 또한 해당 인터페이스가 오직 하나의 추상 메서드만을 가지고 있어야 한다는 것을 알려준다. 그렇지 않으면 컴파일조차 되지 않는다. 따라서 누군가 실수로 메서드를 추가하지 못하게 막아준다. 그렇기 때문에 직접 만든 함수형 인터페이스에는 항상 @FunctionalInterface 어노테이션을 붙여주자.
요점정리
커스텀 인터페이스를 만드는 상황
유용한 디폴트 메서드를 가득 담고 있다. 이처럼 3가지 중 하나 이상의 이유가 있다면 직접 함수형 인터페이스를 구현할지 고민해도 좋다.
@FunctionInterface
이 어노테이션이 달린 인터페이스가 람다용으로 설계된 것임을 알려준다. 또한 해당 인터페이스가 오직 하나의 추상 메서드만을 가지고 있어야 한다는 것을 알려준다. 그렇지 않으면 컴파일조차 되지 않는다. 따라서 누군가 실수로 메서드를 추가하지 못하게 막아준다. 그렇기 때문에 직접 만든 함수형 인터페이스에는 항상
@FunctionalInterface
어노테이션을 붙여주자.