Java/Java이론

자바 함수형 인터페이스와 기본 메서드

P_eli 2023. 11. 28. 22:23
728x90
반응형

자바의 함수형 프로그래밍을 지원하는 함수형 인터페이스와 그 중 기본 메서드에 대해 알아보려고 합니다. 자바 8부터 도입된 이러한 기능들은 코드를 간결하게 작성하고, 더 효율적으로 다룰 수 있게 해줍니다.

함수형 인터페이스란?

함수형 인터페이스는 단일 추상 메서드를 가진 인터페이스를 말합니다. 자바에서는 이 인터페이스를 통해 람다식을 지원하게 됩니다. 예를 들어, 다음은 함수형 인터페이스의 간단한 예제입니다.

@FunctionalInterface
interface MyFunctionalInterface {
    void myMethod();
}

 

위 코드에서 @FunctionalInterface 어노테이션은 해당 인터페이스가 함수형 인터페이스임을 명시합니다. 이제 이 인터페이스를 람다식으로 구현할 수 있습니다.

람다 표현식을 이용한 함수형 인터페이스 사용

public class Main {
    public static void main(String[] args) {
        MyFunctionalInterface myFunc = () -> {
            System.out.println("Hello, Functional Interface!");
        };

        myFunc.myMethod();
    }
}

 

람다 표현식을 이용하면 함수형 인터페이스를 더 간결하게 사용할 수 있습니다.

함수형 인터페이스의 기본 메서드

자바 8에서는 함수형 인터페이스에 메서드를 추가하기 위해 기본 메서드를 도입했습니다. 기본 메서드는 인터페이스에서 이미 구현되어 있는 메서드로, 구현체에서 재정의할 필요가 없습니다.

@FunctionalInterface
interface MyFunctionalInterface {
    void myMethod();

    default void defaultMethod() {
        System.out.println("Default Method");
    }
}

 

위 코드에서 defaultMethod는 기본 메서드로, 구현체에서 재정의하지 않아도 됩니다. 이제 이 기본 메서드를 사용하는 예제를 살펴봅시다.

public class Main {
    public static void main(String[] args) {
        MyFunctionalInterface myFunc = () -> {
            System.out.println("Hello, Functional Interface!");
        };

        myFunc.myMethod();       // "Hello, Functional Interface!"
        myFunc.defaultMethod();  // "Default Method"
    }
}

 

기본 메서드를 통해 인터페이스에 새로운 메서드를 추가할 수 있어 코드의 확장성을 높일 수 있습니다.

 

 

자바의 함수형 인터페이스와 기본 메서드는 람다 표현식을 통해 간결하게 코드를 작성하고, 동시에 인터페이스의 확장성을 보장하는 강력한 기능입니다. 이러한 기능들을 적재적소에 사용하면 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

728x90
반응형