함수형 인터페이스

실제로 많이 활용되는 함수형 인터페이스

OverView

함수형 인터페이스(Functional Interface)란 1개의 추상 메소드를 갖는 인터페이스를 얘기한다. Java8 부터 인터페이스는 기본 구현체를 포함한 default method를 가질 수 있다. 여러 개의 default method가 존재 하더라도 추상 메서드가 오직 하나 이면 함수형 인터페이스라고 한다.

기존의 사용 방법은 아래와 같다. 1. 인터페이스 구현체 생성 2. 인터페이스 함수 재정의

Java8 이후의 방법 1. 람다식으로 간략하게 구현

그리고 그리고 @Funcitioal Interface 어노테이션을 사용하는데, 이 어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사를 해준다.

@Funcitioal Interface 어노테이션이 없어도 함수형 인터페이스로 동작하고 사용하는 데 문제는 없지만, 인터페이스 검증과 유지보수를 위해 붙혀주는게 좋다.

함수형 인터페이스 예제

// 인터페이스 정의
@FunctionalInterface
interface ExamInterface<T> {
     // 추상(abstract) 메소드 오직 하나
     T testCall();

     // 디폴트 메서드의 존재 유무는 상관 없음
     defualt void printDefault() {
          System.out.println("Hi Default Method");
     }

     // 정적 메소드의 존재 유무는 상관 없음
     static void printStatic() {
	System.out.println("Hi Static Method");
     }
}

// 호출
ExamInterface<String> interface = () -> "Hi interface";

// 추상 메서드
String str = interface.testCall();
System.out.print(str);

// 디폴트 메서드
interface.printDefault();

// 정적 메서드
interface.printStatic();


// 출력
Hi interface
Hi Static Method
Hi Default Method

Java에서 기본으로 제공하는 함수형 인터페이스 종류

Last updated