Question 11
Given:
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=0; 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 ClassCastException occurs in line 29.
D. A ClassCastException occurs in line 31.
E. The value of all four objects prints in natural order.
Answer: C
为什么呢??

解决方案 »

  1.   

    29. Arrays.sort(myObjects); //编译出错
     字符串不能格式化为INTEGER会抛出NUMBERFORMATEXCEPITON异常
      

  2.   

    从API中摘录下来的希望对LZ有帮作sortpublic static void sort(Object[] a)    根据元素的自然顺序对指定对象数组按升序进行排序。数组中的所有元素都必须实现 Comparable 接口。此外,数组中的所有元素都必须是可相互比较的(也就是说,对于数组中的任何 e1 和 e2 元素而言,e1.compareTo(e2) 不得抛出 ClassCastException)。    保证此排序是稳定的:不会因调用 sort 方法而对相等的元素进行重新排序。    该排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n*log(n) 性能。    参数:
            a - 要排序的数组 
        抛出:
            ClassCastException - 如果数组包含不可相互比较的 的元素(例如,字符串和整数)。

      

  3.   

    ClassCastException - 如果数组包含不可相互比较的 的元素(例如,字符串和整数)。 
    学习了!!