원시 컬렉션에서 제네릭 타입으로
원시 컬렉션 타입과 조회 시 캐스트를 컴파일 타임 제네릭 타입 안전성으로 대체합니다.
코드 비교
✕ Java 1.4
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
✓ Java 5+
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
컴파일 타임 안전성
잘못된 요소 타입은 런타임이 아니라 컴파일 중에 실패합니다.
조회 캐스트 불필요
값은 선언된 요소 타입을 그대로 유지합니다.
자기 문서화 API
컬렉션 선언이 정확히 무엇을 포함하는지 알려줍니다.
이전 방식
원시 컬렉션
모던 방식
제네릭 컬렉션
JDK 버전
5
난이도
초급
JDK 지원
원시 컬렉션에서 제네릭 타입으로
사용 가능
제네릭은 JDK 5(2004년 9월)부터 사용할 수 있습니다.
동작 원리
원시 컬렉션은 임의의 객체 타입을 허용하며, 타입 오류는 캐스트가 실행될 때까지 지연됩니다. 제네릭 타입 인자를 사용하면 컴파일러가 쓰기와 읽기를 검증하고, 캐스트를 제거하며, IDE 지원을 향상시키고, API 계약을 명시적으로 만들 수 있습니다. 원시 타입은 일반적으로 신중하게 격리된 레거시 상호 운용 경계에서만 남아 있어야 합니다.
관련 문서
증명