Item28. Use Lists Instead of Arrays
배열보다는 리스트를 사용하라
1. 공변성과 불공변성
1.1. 배열의 공변성(Covariance)
Number[] numbers = new Integer[10]; // Integer 배열을 Number 배열로 사용
numbers[0] = 3.14; // 컴파일은 되지만, 실행 시 ArrayStoreException 발생1.2. 리스트의 불공변성(Invariance)
List<Number> numbers = new ArrayList<>();
// numbers.add(3.14); // 허용
// numbers.add("String"); // 컴파일 오류 발생: 타입 불일치2. 실체화와 타입 소거
2.1. 배열의 실체화 (Reifiable)
2.2. 리스트의 타입 소거 (Type Erasure)
3. 배열 사용의 단점과 문제점
3.1. 타입 안전성 문제
3.2. 제네릭과의 비호환성
4. 리스트 사용의 장점
4.1. 컴파일 시점 타입 체크
4.2. 가변 크기와 편리한 메서드 지원
5. 코드 예시: 배열을 리스트로 변환하기
Last updated