[java] 자바 함수형 인터페이스를 사용하여 지연된 실행을 처리하는 방법은 어떻게 되나요?

자바에서 함수형 인터페이스를 사용하여 지연된 실행을 처리하는 방법은 Supplier 인터페이스를 활용하는 것입니다.

Supplier는 단일 값(결과)을 반환하는 함수형 인터페이스입니다. 실행할 코드 블록을 지연하여 필요한 시점에 실행하고 결과를 반환할 수 있습니다. 아래는 Supplier 인터페이스를 사용하여 지연된 실행을 처리하는 간단한 예제입니다.

import java.util.function.Supplier;

public class DelayedExecutionExample {
    public static void main(String[] args) {
        Supplier<Integer> delayedExecution = () -> {
            // 실행할 코드 블록
            System.out.println("Delayed execution code block");
            return 42; // 결과 반환
        };

        // 필요한 시점에 실행하기 위해 get() 메서드 호출
        int result = delayedExecution.get();
        System.out.println("Result: " + result);
    }
}

위의 예제에서는 Supplier<Integer>를 생성하고 get() 메서드를 호출하여 코드 블록을 실행합니다. 이때 Supplier의 반환타입으로 Integer를 지정하였으므로 코드 블록에서 Integer 타입의 결과값을 반환하였습니다. 실행 결과로 “Delayed execution code block”이 출력되고, 결과값인 42가 출력됩니다.

이 예제는 단순한 형태의 지연된 실행이지만, Supplier를 활용하여 더 복잡한 작업도 처리할 수 있습니다. Supplier의 반환타입을 원하는 타입으로 지정하여 필요한 시점에 실행하고 결과를 처리할 수 있습니다.

자바에서는 Supplier 외에도 Function, Consumer, Predicate 등 다양한 함수형 인터페이스가 제공되어 다양한 작업을 처리할 수 있습니다. 함수형 인터페이스를 활용하면 더 유연하고 간결한 코드를 작성할 수 있습니다.

참고 문서: