A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 覃宏海 中级黑马   /  2012-9-14 01:56  /  1291 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 覃宏海 于 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()));
                          ^

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
  //int num = compare(new Integer(s1.getAge()),new Integer (s2.getAge()));为什么不能用compare??
这个compare是接口Comparator里面的一个方法,你这样用当然不行了,除非你让这个类实现了这个接口,让这个类具有比较性,这样两个对象比较了。你Integer本身就有compareTo这个方法,所以可以用了。不知道解决了你的疑问没?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马