看板 java 關於我們 聯絡資訊
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
Hankmix:像這樣http://ppt.cc/RNDW 08/27 11:31
PsMonkey:XD 應該是原 po 的 typo,你是對的 XDDD 08/27 11:35