Generics

1. Generics 개요 및 필요성

Generics은 데이터 타입의 안정성을 제공한다.
모든 Collection 객체는 Object유형의 어떠한 객체라도 넣을 수 있어서, Compile시점에서 에러를 발견할 수 없으며, RunTime시점에서 에러를 발견할 수 있었다.
Generics은 이러한 객체에 넣을 타입을 한정시켜 주어, Compile시점에서 에러를 발견할 수 있다.
주로 Collection객체를 사용할 때 유용하게 쓰인다.

2. 선언방법


public class ArrayList<E> extends AbstractList<E> implements List<E>...{
	public boolean add(E o)
}

3. 예제

- 기존코드


import java.util.*;
public class Before_Generics{
	public static void main(String[] args){
		ArrayList arr = new ArrayList();
		arr.add(new Integer(2));
		arr.add(new String("I am String!!"));
		
		for (int i=0; i <arr.size(); i++){
			System.out.println((Integer)arr.get(i));
		}
	}
}

<<실행결과>> RunTime시 Error가 발생!!

- JAVA 5.0 코드


import java.util.*;
public class After_Generics{
	public static void main(String[] args){
		ArrayList<Integer> arr = new ArrayList<Integer>();
		arr.add(new Integer(2));
		arr.add(new String("I am String!!"));
		
		for (int i=0; i <arr.size(); i++){
			System.out.println((Integer)arr.get(i));
		}
	}
}

<<실행결과>> Compile시 Error가 발생!!

참고문서