[java] 함수형 인터페이스를 사용하여 두 개의 객체를 조합하는 방법은 어떻게 되나요?

자바에서는 람다 표현식을 사용하여 함수형 인터페이스를 구현할 수 있습니다. 함수형 인터페이스는 단 하나의 추상 메소드를 가지고 있고, 이를 기반으로 함수형 프로그래밍이 가능해집니다.

아래는 두 개의 객체를 조합하는 예시입니다:

@FunctionalInterface
interface Combiner<T> {
    T combine(T obj1, T obj2);
}

public class CombineObjects {
    public static void main(String[] args) {
        Combiner<String> stringCombiner = (s1, s2) -> s1 + s2;
        String result = stringCombiner.combine("Hello", " World");
        System.out.println(result); // 출력: Hello World

        Combiner<Integer> sumCombiner = (num1, num2) -> num1 + num2;
        int sum = sumCombiner.combine(5, 7);
        System.out.println(sum); // 출력: 12
    }
}

위 예시에서 Combiner 라는 함수형 인터페이스를 정의하고, 이를 사용하여 CombineObjects 클래스에서 문자열과 정수를 조합하는 로직을 작성하였습니다.

Combiner 인터페이스의 combine 메소드를 구현하고, 해당 메소드를 각 객체에서 사용하는 람다 표현식으로 정의했습니다. 따라서, stringCombiner를 사용하여 “Hello”와 “ World”를 조합한 결과는 “Hello World”가 되고, sumCombiner를 사용하여 5와 7을 더한 결과는 12가 됩니다.

함수형 인터페이스를 사용함으로써, 객체를 조합하는 로직을 단순하고 간결하게 작성할 수 있습니다. 또한, 다른 종류의 객체를 조합하는데도 Combiner 인터페이스를 재사용할 수 있습니다.

더 자세한 내용은 자바 공식 문서를 참고하시기 바랍니다.