我目前正在爲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的標準和應編譯的。
我認爲這已得到糾正。 – user998692