[java] 제네릭 메서드의 타입 추론(Type Inference)

제네릭 메서드는 메서드의 파라미터나 반환 타입으로 제네릭 타입을 사용하는 메서드를 말합니다. Java 7부터는 제네릭 메서드에서도 타입 추론이 가능해졌습니다.

제네릭 메서드에서의 타입 추론은 사용자가 직접 타입을 명시하지 않아도, 컴파일러가 메서드 호출 시 전달되는 인자의 타입을 기반으로 제네릭 타입을 추론하여 사용할 수 있도록 해줍니다.

예시

아래는 제네릭 메서드에서 타입 추론을 사용한 예시입니다.

public class TypeInferenceExample {
    public static <T> T firstElement(List<T> list) {
        if (list.isEmpty()) {
            return null;
        }
        return list.get(0);
    }

    public static void main(String[] args) {
        List<String> strings = Arrays.asList("apple", "banana", "orange");
        String first = TypeInferenceExample.<String>firstElement(strings); // 명시적으로 타입을 지정
        String firstInferred = TypeInferenceExample.firstElement(strings); // 타입 추론 사용
    }
}

위의 예시에서 firstElement 메서드를 호출할 때, strings 리스트의 타입을 통해 메서드의 제네릭 타입이 추론됩니다.

Java 7부터는 타입 추론을 이용하여 호출 코드를 간결하게 작성할 수 있어 코드의 가독성을 높일 수 있습니다.

결론

제네릭 메서드에서의 타입 추론은 Java 7부터 지원되며, 사용자가 제네릭 타입을 직접 명시하지 않아도 메서드 호출 시 전달되는 인자의 타입을 기반으로 제네릭 타입을 추론할 수 있도록 해줍니다.

타입 추론을 통해 코드를 간결하게 작성할 수 있고, 가독성을 높일 수 있습니다.

참조: Oracle Java Tutorials - Type Inference