문제

다음이 있다고 가정 해 봅시다.

int a = 2;
Number b = (Number) a;

System.out.println(b); // Prints 2

http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#238146 기본 값은 참조 유형으로 캐스트 될 수 없다고 말합니다. Java는 Primitive Int에서 정수를 만들고 슈퍼 클래스로 캐스트하는 것을 알고 있습니까? Java는 이것을 무대 뒤에서 정확히 어떻게 처리합니까? 감사!

도움이 되었습니까?

해결책

프로세스가 호출됩니다 오토 옥싱. 요컨대, 컴파일러는 래퍼를 본다 (Integer) 원시보다는 (int)이 필요하고 자동으로 변환을 추가합니다. 그리고 실제로 당신의 캐스트 Number 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top