▪ 若用 B, 若用 C, 则改用 B 的第 14 列会没有 iter; 若用 D, 则无
法使用 foreach, 因为 intList 并非数组
o 若 AC, 则来分析 E 及 F
▪ E: 宣告泛型为 int 是错误的, 只能用参考型别, 不能用原生型态
▪ F: 宣告泛型为 Integer 是合法的, 所以 ACF 正确
(4)Given the following Java code:
23.Object[ ] myObjects = {
24.new Integer(12),
25.new String("foo"),
26.new Integer(5),
27.new Boolean(true),
28.};
29.Arrays.sort(myObjects);
30.for ( int i = o; i < myObjects.length; i++ ) {
31.System.out.print( myObjects[i].toString() );
32.System.out.print(" ");
33.}
What is the result?
A.Compilation fails due to an error in line 23.
B.Compilation fails due to an error in line 29.
C.A ClassCaseExceptation occurs in line 29.
D.A ClassCaseExceptation occurs in line 31.
E.The value of all four object prints in natural order.
答案:C
解析:
� 既然选项中有编译失败, 所以先检查这段程序代码中是否有不合法之处. 但是选项中
只有提及第 23 列及第 29 列, 因此直接将检查焦点放在这两列.
o 23: 宣告为 Object 数组, 一直到第 28 列, 语法格式正常, 数组元素亦皆为
Object (is-a), 各对象建构方式也非常正常.
o 29: 呼叫 java.util.Arrays 之 static 的 sort(), 请参考 API 之宣告如
下: public static void sort(Object[] a), 因此也非常合乎语法.
o 所以编译的问题应该不存在了
� 但是, 问题就出在 Arrays.sort() 是用来将数组元素依照自然排序法进行排序, 前
提就是该数组中所有元素值可以转型后比较, 才能排序. 该题中的元素分别为不同类
别对象, 所以无法进行比较型比较.
评论0
最新资源