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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨兴庭 于 2013-5-27 11:57 编辑

自己写的Stu类实现Comparable接口,重写compareTo(Object o)方法,比较当前对象与指定对象的顺序,让Stu类成为可排序的类。代码中出现了一点小问题,麻烦大家看一下,,找出错误原因提供20金币作为感谢,提供建议提供3-5金币感谢,麻烦大家了


代码如下:
  1. public class Stu implements Comparable{
  2.         /*声明属性*/
  3.         private String name;
  4.         private int age;
  5.         
  6.         /*getter,setter方法*/
  7.         public String getName() {
  8.                 return name;
  9.         }

  10.    public void setName(String name) {
  11.                 this.name = name;
  12.         }

  13.     public int getAge() {
  14.                 return age;
  15.         }

  16.         public void setAge(int age) {
  17.                 this.age = age;
  18.         }
  19.         
  20.         /*构造方法*/
  21.         public Stu(String name, int age) {
  22.                 super();
  23.                 this.name = name;
  24.                 this.age = age;
  25.         }
  26.         
  27.         /*重写hashcode方法*/
  28.         @Override
  29.         public int hashCode() {
  30.                
  31.                 return  age*name.hashCode();
  32.         }

  33.    /*重写equals方法*/

  34.     @Override
  35.         public boolean equals(Object o) {
  36.                
  37.                 Stu s=(Stu) o;
  38.                 return age==s.age&&name.equals(s.name);
  39.         }


  40.         /*重写toString方法*/
  41.         public String toString() {
  42.                 return name+age;
  43.         }
  44.         
  45.         
  46.         
  47.         /*重写comparaTo方法*/
  48.         
  49.         @Override
  50.         public int compareTo(Object o) {
  51.                
  52.                 Stu s=(Stu) o;
  53.                
  54.                 if(s.getAge().compareTo(this.getAge())>0){                    //就是在这里报错了,麻烦大家指正
  55.    
  56.           return -1;
  57.                 }
  58.                 else if(s.getAge().compareTo(this.getAge())==0){
  59.                         return  0;
  60.                         
  61.                 }
  62.                   
  63.                 else{
  64.                           return 1;
  65.                 }
  66.                
  67.         }

  68.         }
复制代码

a1.jpg (27.09 KB, 下载次数: 0)

报错的代码

报错的代码

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

11 个回复

倒序浏览
占楼在看
回复 使用道具 举报
你这样写肯定不行的int类型不能用compareTo的 你转成Integer就OK了
new Integer(s.getAge()).compareTo(new Integer(this.getAge()))>0;

评分

参与人数 1黑马币 +20 收起 理由
杨兴庭 + 20 谢了。。

查看全部评分

回复 使用道具 举报
王靖远 发表于 2013-5-26 20:41
占楼在看

额,,哥么又被你占了沙发,准备报哪一期啊  你技术分早够了能提交入学申请了
回复 使用道具 举报
王靖远 发表于 2013-5-26 20:41
占楼在看

额,,哥么又被你占了沙发,准备报哪一期啊  你技术分早够了能提交入学申请了
回复 使用道具 举报
杨兴庭 发表于 2013-5-26 20:48
额,,哥么又被你占了沙发,准备报哪一期啊  你技术分早够了能提交入学申请了 ...

21期啊。
回复 使用道具 举报
王靖远 发表于 2013-5-26 20:41
占楼在看

   你也21期啊 看你怪活跃的   
回复 使用道具 举报
花开花落总相似 发表于 2013-5-26 21:42
你也21期啊 看你怪活跃的

嘿嘿,时间多啊
回复 使用道具 举报
王靖远 发表于 2013-5-26 21:57
嘿嘿,时间多啊

   扣扣号多少 咱也进21期 没事交流一下
回复 使用道具 举报
花开花落总相似 发表于 2013-5-26 22:01
扣扣号多少 咱也进21期 没事交流一下

qq号8759328
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马