JAVA/Generic

제네릭 메소드와 배열

DesignatedRoom 2020. 10. 18. 21:09

배열도 인스턴스이므로 제네릭 매개변수에 전달이 가능하다.

하지만, 다음과 같은 문장을 쓸 수 없다.

아래와 같이 ShowArrayData함수의 매개변수로 배열 인스턴스를 선언하면,

매개변수에 전달되는 참조 값을 배열 인스턴스의 참조 값으로 제한할 수 있다.

그리고 이렇게 되면 참조 값은 배열 인스턴스의 참조 값임이 보장되므로 []연산을 허용한다.

아래와 같이 []연산이 필요하면 매개변수의 선언을 통해서 전달되는 참조 값을 배열의 참조 값으로 제한해야 한다.

 

예제

프로그램 실행결과

소스 코드

더보기
public class Exam1 
{
	public static void main(String[] args) 
	{
		String[] stArr = new String[] {
				"Hi",
				"I am so happy",
				"Java Generic Programming"
		};
		
		ShowArrayData(stArr);
	}
	
	public static<T> void ShowArrayData(T[] arr)
	{
		for (int i = 0; i < arr.length; i++)
			System.out.println(arr[i]);
	}
}