[java] 제네릭 메서드와 함수형 인터페이스(Functional Interface)

제네릭(Generic)은 자바에서 클래스나 메서드를 설계할 때 타입을 파라미터로 사용할 수 있게 하는 기능입니다. 이를 통해 코드의 재사용성과 안정성을 높일 수 있습니다.

제네릭 메서드

제네릭 메서드는 메서드를 정의할 때 메서드의 반환 타입 앞에 <T>와 같이 제네릭 타입을 지정하는 것을 말합니다. 이를 활용하면 메서드 안에서 여러 가지 타입을 사용할 수 있습니다.

public <T> T printValue(T value) {
    System.out.println("Value: " + value);
    return value;
}

위의 예제에서 printValue 메서드는 제네릭 타입 T를 받아들이고, 해당 타입의 값을 출력한 뒤 해당 값을 반환합니다.

함수형 인터페이스

함수형 인터페이스는 하나의 추상 메서드만을 갖고 있는 인터페이스를 말합니다. 자바 8 이후부터 함수형 인터페이스에 대한 람다 표현식을 지원하게 되어, 간단한 함수를 간결하게 표현할 수 있게 되었습니다.

@FunctionalInterface
interface Calculator<T> {
    T calculate(T a, T b);
}

위의 예제에서 Calculator 인터페이스는 calculate 메서드 하나만을 정의하여 함수형 인터페이스가 됩니다. 그리고 @FunctionalInterface 애너테이션으로 해당 인터페이스가 함수형 인터페이스임을 명시합니다.

자바에서 제네릭 메서드와 함수형 인터페이스를 활용하면 유연하고 타입에 안전한 코드를 작성할 수 있습니다.

더 많은 정보는 Oracle 공식 문서에서 확인할 수 있습니다.