이펙티브자바 아이템28
-
아이템28. 배열보다는 리스트를 사용하라책/이펙티브자바 2021. 9. 1. 17:21
배열과 리스트의 차이점 1 배열은 공변(covariant)이다. (함께 변한다.) Sub가 Super의 하위 타입이라면 Sub[]는 Super[]의 하위 타입이 된다. 제네릭은 불공변(invariant)이다. (함께 변하지 않는다.) 서로 다른 타입 Type1, Type2가 있을 때, List은 List의 하위타입도 상위타입도 아니다. // 런타임에 실패한다. Object[] objectArray = new Long[1]; objectArray[0] = "타입이 달라 넣을 수 없다."; // ArrayStoreException을 던진다. // 컴파일에 실패한다. List ol = new ArrayList(); // 호환되지 않는 타입이다. ol.add("타입이 달라 넣을 수 없다."); 두 가지 방법 모..