본문 바로가기
Study

[Java] 함수형 인터페이스 Functional Interface)

by jisayDeveloper 2023. 10. 28.
728x90
반응형

함수형 인터페이스(Functional Interface)는 Java 프로그래밍에서 중요한 개념 중 하나입니다. 함수형 인터페이스는 Java 8 이후에 도입되었으며, 람다식(lambda expression)과 스트림 API와 같은 기능들과 함께 함수형 프로그래밍 스타일을 지원합니다. 

함수형 인터페이스(Functional Interface)란?

함수형 인터페이스는 하나의 추상 메서드(abstract method)를 정의하는 인터페이스입니다. 이것은 말 그대로 '함수'의 역할을 수행할 수 있는 인터페이스를 나타냅니다. 이 인터페이스는 다양한 함수형 프로그래밍 기법을 구현하는 데 사용됩니다. Java 8에서는 함수형 인터페이스를 명확하게 표시하기 위해 @FunctionalInterface 어노테이션을 도입했습니다.

 

특징

  • 단일 추상 메서드: 함수형 인터페이스는 반드시 하나의 추상 메서드만을 가져야 합니다. 이 메서드가 인터페이스의 주요 동작을 정의하며, 람다식을 통해 이 메서드를 구현합니다.
  • @FunctionalInterface 어노테이션: 함수형 인터페이스를 정의할 때 @FunctionalInterface 어노테이션을 사용하면 컴파일러가 해당 인터페이스가 함수형 인터페이스로 사용될 수 있는지 확인합니다.

활용 방법

함수형 인터페이스는 람다식과 함께 주로 사용됩니다. 람다식은 함수형 인터페이스의 추상 메서드를 구현하는 데 특히 유용하며 코드를 간결하게 만듭니다. 

 

예제를 들어보면

import java.util.List;
import java.util.function.Consumer;

public class FunctionalInterfaceExample {
    public static void main(String[] args) {
        List<String> fruits = List.of("사과", "바나나", "귤", "메론");

        // Consumer 함수형 인터페이스를 사용한 람다식
        Consumer<String> printFruit = (fruit) -> {
            System.out.println(fruit);
        };

        // 리스트의 각 요소에 람다식을 적용
        fruits.forEach(printFruit);
    }
}

Consumer<T> 인터페이스를 사용하여 람다식을 정의하고 forEach를 통해 콘솔에 출력하게 됩니다.

 

함수형 인터페이스와 람다식은 Java 8 이후의 중요한 기능으로, 함수형 프로그래밍 스타일을 지원합니다. 이를 통해 코드를 간결하게 작성하고 가독성을 높일 수 있으며, 병렬 프로그래밍과 스트림 API와 같은 다양한 기능을 활용할 수 있습니다. 함수형 인터페이스와 람다식을 잘 활용하면 Java 프로그래밍을 더 효율적으로 수행할 수 있습니다.

728x90
반응형