ArrayList는 왜 제네릭 타입 E[]가 아닌 Object[]으로 요소를 관리할까?

·
Java
제네릭을 공부하다가 제네릭을 사용하는 클래스 중 대표적으로 자주 사용되는 ArrayList에 대해 파헤치기 시작했다.그런데 이상한 점을 하나 발견했다.내부 요소들을 관리하는 자료구조가 Object[] 이었던 것이다.ArrayList가 제네릭을 사용하니 E[] 를 사용해도 될 것 같은데, 왜 Object[] 를 사용하고 있을까?ArrayList제네릭을 이용해 구현한 ArrayListprivate static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialC..