본문 바로가기
Language/자바

함수형 인터페이스 간략히 알아보자.

by 띵커베르 2023. 1. 29.
728x90
  • 함수형 인터페이스
    • 1개의 추상 메서드를 갖는 인터페이스
    • 자바 8 버전 이후에는 Default 메서드 사용 가능
    • 구현된 함수형 인터페이스는 @FunctionalInterface 를 표시하여 검증할 수 있다.
    • Single Abstract Method(SAM) 이라고도 불림.
  • 아래는 간단한 함수형 인터페이스를 이용한 람다문법.
@FunctionalInterface
interface Worker {
    void work();
}

public class FITest {
    static void execute(Worker worker) {
        worker.work();
    }

    public static void main(String[] args) {
        //익명 클래스
        execute(new Worker() {
            @Override
            public void work() {
                System.out.println("Hello World");
            }
        });
        //Lambda
        execute(() -> System.out.println("Hello Lambda World"));
    }
}
    //함수형 인터페이스다.
    public interface Adder{
        int add(int a, int b);
    }

    //SmartAdder 은 두 추상 메서드(Adder 상속 포함)를 포함하므로 함수형 인터페이스가 아님
    public interface SmartAdder extends Adder {
        int add(double a, double b);
    }
    //추상 메서드가 없으므로 함수형 인터페이스가 아님    
    public interface Nothing {}
728x90

댓글