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

함수형 인터페이스는 자바 8부터 추가된 기능으로, 단일 추상 메소드를 가지는 인터페이스를 의미합니다. 이를 이용하여 데이터 변환을 처리할 수 있습니다.

데이터 변환을 위해 우선 함수형 인터페이스를 정의해야 합니다. 예를 들어, 다음과 같은 인터페이스를 정의할 수 있습니다:

@FunctionalInterface
public interface DataTransformer<T, R> {
    R transform(T input);
}

위의 예제에서 T는 입력 데이터의 타입을, R은 출력 데이터의 타입을 나타냅니다. transform 메소드는 입력 데이터를 받아서 출력 데이터로 변환하는 기능을 가지고 있습니다.

이제 이 함수형 인터페이스를 사용하여 실제 데이터 변환을 처리할 수 있습니다. 예를 들어, 다음은 정수를 문자열로 변환하는 변환기의 예제입니다:

DataTransformer<Integer, String> integerToStringTransformer = input -> input.toString();
String result = integerToStringTransformer.transform(42);
System.out.println(result); // 출력: "42"

위의 예제에서는 DataTransformer<Integer, String> 인스턴스를 생성하여 transform 메소드를 호출하여 변환을 수행하고, 그 결과를 출력합니다.

함수형 인터페이스는 메소드 참조나 람다 표현식과 함께 사용될 수도 있습니다. 예를 들어, 다음은 문자열을 대문자로 변환하는 변환기의 예제입니다:

DataTransformer<String, String> stringToUpperCaseTransformer = String::toUpperCase;
String result = stringToUpperCaseTransformer.transform("hello");
System.out.println(result); // 출력: "HELLO"

위의 예제에서는 String::toUpperCase 메소드 참조를 통해 입력 문자열을 대문자로 변환하는 DataTransformer 인스턴스를 생성하여 변환을 수행합니다.

함수형 인터페이스를 사용하면 데이터 변환을 간단하고 유연하게 처리할 수 있습니다. 이를 통해 코드의 가독성과 재사용성을 높일 수 있습니다.

참고 자료: