제네릭 타입과 타입 안전성 예제가 실행되는 순서
타입 인자로 T 확정에서 시작해 캐스트 없이 같은 T로 반환까지 값과 책임이 이동한다.
-
1
타입 인자로 T 확정
Box의 put과 get이 같은 T를 사용하므로 넣은 타입과 꺼내는 타입을 컴파일러가 연결합니다.
-
2
T 타입 값만 저장
new Box()의 오른쪽 타입 인자를 new Box<>()로 줄여도 왼쪽 선언에서 String을 압니다.
-
3
캐스트 없이 같은 T로 반환
Box raw에는 어떤 객체든 넣을 수 있어 나중에 예상 타입으로 읽을 때 ClassCastException이 날 수 있습니다.
실행 순서 Box의 T가 put 입력과 get 반환을 묶어 잘못된 대입을 컴파일 단계에서 막습니다.