- 컴파일 시 강한 타입 체크를 할 수 있습니다.
- 비제너릭 코드는 불필요한 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미칩니다. 다음 아래 코드를 보면 List에 문자열 요소를 저장했지만, 요소를 찾아올 때는 반드시 String으로 타입 변환을 해야합니다.
List list = new ArrayList();
list.add("hello");
String str = (String) list.get(0);
다음과 같이 제너릭 코드로 수정하면 List에 저장되는 요소를 String 타입으로 국한되기 때문에 요소를 찾아올 때 타입 변환을 할 필요가 없어 프로그램 성능이 향상됩니다.
List<String> list = new ArrayList<String>();
list.add("hello");
String str = list.get(0); // 타입 변환을 하지 않습니다.