2012-11-15 42 views
2

我目前正在爲Java SE 7 Programmer考試做準備,並試圖解決Oracle站點上的示例問題。我被卡在這一個:ocpjp示例問題中的比較問題

import java.util.*; 
    public class Primes2 { 
     public static void main(String[] args) { 
      Integer[] primes = {2, 7, 5, 3}; 
      MySort ms = new MySort(); 
      Arrays.sort(primes, ms); 
      for(Integer p2: primes) 
       System.out.print(p2 + " "); 
     } 
    static class MySort implements Comparator { 
     public int compare(Integer x, Integer y) { 
      return y.compareTo(x); 
     } 
    } 
} 

結果是什麼?

A)2 3 5 7

B)2 7 5 3

C)7 5 3 2

d)彙編失敗。 E)運行時拋出異常。

的問題可以在這裏找到:http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=303&p_certName=SQ1Z0_804

的網站上顯示正確答案是C.我測試的代碼,發現它並沒有編譯,因爲比較的參數,並在給定的代碼類型不表示,因此編譯器期望比較方法的Object參數。當我用Comparator<Integer>更改比較器時,錯誤得到解決,並按預期工作。

我的問題是,原始代碼中的聲明是否遵守Java 7的標準和應編譯的

回答

2

實際上,這不能編譯。

要使其有效,必須輸入Comparator作爲Comparator<Integer>compare()方法參數必須是Object類型。

因此,此考題無效。

1

問題是有效的,正確答案是「D)編譯失敗」。

如果選中該頁面與頁面的問題,你可以找到它的底部的答案,這個問題被標記d

+0

我認爲這已得到糾正。 – user998692