Object 목록은 원인과 실패를 멀리 떨어뜨린다

저장 타입을 계약에 넣지 않으면 호출자마다 같은 값을 다른 타입으로 캐스팅할 수 있습니다.

Object 목록

문자열 저장 허용 → 나중 Integer cast 실패

MyArrayList<E>

add(E)에서 차단 → get():E 보장

set

이전 값도 E로 반환

핵심: E를 add·get·set 전체에 연결하고 unchecked 경고는 내부 검증 지점 하나에만 둡니다.