작성한 질문수
김영한의 실전 자바 - 중급 2편
제네릭 적용
해결된 질문
작성
·
177
0
Object를 활용시에 다운캐스팅 과정이 필요했는데요.
(String) Object 10 이것은 컴파일오류로 인식하지 않는 이유가 약간 이해가 가지 않습니다. 어떤 객체든지 Object가 최상위 부모니까 String으로 갈 수 있는데 가보니까 10이어서 예외가 터지는 시나리오 같은데, 컴파일러는 이를 미리 판단할 정도는 되지 않나요?? 컴파일러는 "Object에서 String? -> ok 가능" 이정도만 판단해주는건가요?
답변 1
1
안녕하세요. 영한노게임님, 공식 서포터즈 OMG입니다.
네, 맞습니다.
Integer를 String으로 형변환하지 못하여 발생하는 ClassCastException이 런타임 시점에 발생합니다.
컴파일러는 컴파일 타임에 해당 변수가 실제로 어떤 타입의 객체를 가리키는지를 미리 알지 못하고
런타임 시점에 체크가 됩니다. 인텔리제이만큼 똑똑하게 체크해주지는 못하네요 😀
감사합니다.
답변 감사합니다.
답변 감사합니다.