作者sheep922420 ()
看板java
標題[問題] 關於SCJP 第77題的疑問
時間Fri Aug 23 14:32:03 2013
Given:
11. public static void main(String[] args) {
12. Object obj = new int{1, 2, 3};
13. int[] someArray = (int[])obj;
14. for (int i: someArray) System.out.print(i + " ");
15. }
What is the result?
A. 1 2 3
B. Compilation fails because of an error in line 12.
C. Compilation fails because of an error in line 13.
D. Compilation fails because of an error in line 14.
E. A ClassCastException is thrown at runtime.
答案:A
我的疑點在第13行,
任何物件都是繼承 Object物件
obj宣告的類型為 Object
要把Object 向下轉型成 int[] 類型, 應該會產生 ClassCastException
可是卻編譯成功??
想請問版上高手我錯誤的點是在哪邊??
謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.254.105.196
→ realmeat:實體是new的那個 Object只是接起來 08/23 14:33
推 PsMonkey:你只是把他當成 Object,他骨子裡還是 int[] 08/23 14:47
→ sheep922420:感謝樓上兩位大大!!! 08/23 14:55
→ DeathWatch:多型 08/23 15:41
推 Hankmix:我第12行要打Object obj = new int[]{1, 2, 3}; 才會過耶 08/27 11:27
→ Hankmix:不然那行會出錯耶 08/27 11:29
推 PsMonkey:XD 應該是原 po 的 typo,你是對的 XDDD 08/27 11:35