Java ocpjp示例问题中的比较器问题

Java ocpjp示例问题中的比较器问题,java,java-7,comparator,ocpjp,Java,Java 7,Comparator,Ocpjp,我目前正在准备JavaSE7程序员考试,我试图在Oracle网站上解决示例问题。我被这件事困住了: import java.util.*; public class Primes2 { public static void main(String[] args) { Integer[] primes = {2, 7, 5, 3}; MySort ms = new MySort(); Arrays.so

我目前正在准备JavaSE7程序员考试,我试图在Oracle网站上解决示例问题。我被这件事困住了:

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) 在运行时引发异常

问题可以在这里找到:

网站上显示的正确答案是C。我测试了代码,发现它没有编译,因为Comparator是参数化的,并且在给定的代码中没有指示类型,因此编译器期望compare方法的对象参数。当我用
比较器
更换比较器时,错误得到了解决,并且工作正常


我的问题是,原始代码中的声明是否尊重Java 7的标准,是否应该编译。

实际上,这并不编译

为了有效,必须将
Comparator
键入为
Comparator
compare()
methods参数必须为
Object
类型


因此,该试题无效。

该试题有效,正确答案为“D)编译失败”

如果您查看包含问题的页面,您可以在页面底部找到答案,并且此问题的标记为D