Functional Interface

지인호·2022년 1월 5일
0

TIL

목록 보기
8/28
post-thumbnail

메서드 정의(추상메서드)가 1개만 있는 인터페이스

보통 람다식을 사용해 함수를 인자로 보내기 위해 사용한다.

추상 메서드의 제약이 1개이므로, default, static 같이 구현체가 있는 메서드 는 여러개 존재해도 상관 없다.

public interface Testable {
		void test(String data);
}

Functional Interface Annotation

@FunctionalInterfacce 어노테이션은 해당 인터페이스가 함수형 인터페이스인지 조건을 검사하기 위해 사용한다 (@Override 와 비슷한 이유라 생각하면 된다)

물론, 해당 어노테이션을 사용하지 않아도 Functional Interface 의 조건을 충족한다면, 함수형 인터페이스로서 동작한다.

다만, 향후 유지보수 및 가독성을 위해 붙여주는 편이 낫다 (해당 인터페이스가 FunctionalInterface 임을 인지하지 못하고 추상 메서드를 추가할 경우 오류가 나므로)

Java 제공 Functional Interfaces

자바에서는 기본적으로 보편적 사용이 가능한 함수형 인터페이스들을 제공한다.

자바에서 제공하는 함수형 인터페이스로는

  • Predicate
    boolean test(T t);
  • Consumer
    void accept(T t);
  • Function<T, R> R apply(T t);

등이 있다.

profile
테오의 스프린트 17기 퍼실리테이터

0개의 댓글