[] 배열 보다 List<> 리스트를 사용해야 하는 이유

혜인·2022년 9월 6일
0

배열은 공변성

  • 배열은 제네릭이 만들어지기 전부터 있었다.
  • 배열 만들때는 다형성을 위해 공변성을 가지도록했다.
  • 공변성을 가지면 아래와 같은 문제 발생
List<Dog> dogs = new ArrayList<Dog>();
List<Animal> animals = dogs;

animals.add(new Cat());
Dog dog = dogs.get(0);
  • Dog 리스트에 Cat을 삽입할 수 있게되는 문제가 있다.

  • 배열은 이런 오류 발생을 런타임시 알 수 있지만 리스트는 컴파일시 바로 알 수 있다.

배열은 실체화 된다.

0개의 댓글