作者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
1F:→ realmeat:实体是new的那个 Object只是接起来 08/23 14:33
2F:推 PsMonkey:你只是把他当成 Object,他骨子里还是 int[] 08/23 14:47
3F:→ sheep922420:感谢楼上两位大大!!! 08/23 14:55
4F:→ DeathWatch:多型 08/23 15:41
5F:推 Hankmix:我第12行要打Object obj = new int[]{1, 2, 3}; 才会过耶 08/27 11:27
6F:→ Hankmix:不然那行会出错耶 08/27 11:29
8F:推 PsMonkey:XD 应该是原 po 的 typo,你是对的 XDDD 08/27 11:35