黑马程序员技术交流社区

标题: 关于自定义Comparator的疑惑 [打印本页]

作者: 覃宏海    时间: 2012-9-14 01:56
标题: 关于自定义Comparator的疑惑
本帖最后由 覃宏海 于 2012-9-14 12:58 编辑

class MyComparator implements Comparator<Student>{
        public int compare(Student s1,Student s2){
                int num = new Integer(s1.getAge()).compareTo(new Integer(s1.getAge()),new Integer (s2.getAge()));
                //int num = compare(new Integer(s1.getAge()),new Integer (s2.getAge()));为什么不能用compare??
                if(num==0)
                        return s1.getName().compareTo(s2.getName());
                return num;
        }
}

改用compare后编译时出现了下面的错误提示!
MapText.java:37: 无法将 MyComparator 中的 compare(Student,Student) 应用于 (java.
lang.Integer,java.lang.Integer)
                int num = compare(new Integer(s1.getAge()),new Integer (s2.getAg
e()));
                          ^
作者: 彭润生    时间: 2012-9-14 02:45
  //int num = compare(new Integer(s1.getAge()),new Integer (s2.getAge()));为什么不能用compare??
这个compare是接口Comparator里面的一个方法,你这样用当然不行了,除非你让这个类实现了这个接口,让这个类具有比较性,这样两个对象比较了。你Integer本身就有compareTo这个方法,所以可以用了。不知道解决了你的疑问没?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2