package CHAPTER09; // 패키지 선언

// 제네릭 메서드 예제 클래스
public class C9_02_GenericMethod {

    // 제네릭 메서드 정의
    // <T> : 타입 매개변수(Type Parameter)를 메서드 수준에서 선언
    // 매개변수로 T 타입 배열을 받아, 배열의 모든 요소를 출력함
	public static <T> void printArray(T[] array) {
        for (T item : array) {          // 향상된 for문으로 배열의 각 요소 접근
            System.out.print(item);     // 각 요소 출력 (공백 없이 출력)
        }        
    }

	public static void main(String[] args) {
        // 문자열 배열 생성
        String[] stringArray = {"A", "B", "C"};

        // 정수 배열 생성
        Integer[] intArray = {1, 2, 3};

        // 제네릭 메서드 호출 (T가 자동으로 String으로 추론됨)
        GenericMethod.printArray(stringArray); // 출력: ABC

        // 제네릭 메서드 호출 (T가 자동으로 Integer로 추론됨)
        GenericMethod.printArray(intArray);    // 출력: 123
    }
}
