[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
인터페이스를 재사용할 수 있습니다.
더 자세한 내용은 자바 공식 문서를 참고하시기 바랍니다.