首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ocpjp样本问题中的比较器问题

ocpjp样本问题中的比较器问题
EN

Stack Overflow用户
提问于 2012-11-15 19:40:09
回答 2查看 2.9K关注 0票数 2

我目前正在为Java 7程序员考试做准备,我试图解决Oracle站点上的示例问题。我被困在这个:

代码语言:javascript
复制
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)在运行时抛出异常。

这个问题可以在这里找到:804

站点上显示的正确答案是C。我测试了代码,发现它没有编译,因为比较器是参数化的,并且在给定的代码中没有指明类型,因此编译器需要比较方法的对象参数。当我用Comparator<Integer>更换比较器时,这个错误得到了解决,并按预期的方式工作。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 19:51:43

实际上,这并不能编译。

为了有效,必须将Comparator输入为Comparator<Integer>compare()方法参数必须为Object类型。

因此,这个试题是无效的。

票数 2
EN

Stack Overflow用户

发布于 2013-01-18 00:23:13

这个问题是有效的,正确的答案是"D)编译失败“。

如果你用问题检查页面,你可以在它的底部找到答案,这个问题被标记为D。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13404870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档