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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 熊亮 中级黑马   /  2013-9-17 20:41  /  1946 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 熊亮 于 2013-9-17 20:59 编辑
  1. <span style="line-height: 1.5;">package 集合框架;</span>
复制代码
老毕第16天的map练习,运行没问题,但是为什么在myeclipse里面显示有error呢?
  
错误提示是:1、The type Student must implement the inherited abstract method Comparable<Student>.compareTo(Student)
                    2、s.name cannot be resolved or is not a field


评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

5 个回复

倒序浏览
泛型的问题。
因为你已经定义了实现的comparable接口里面只能接受Student类型的对象。
而你在复写compareTo方法的时候,传入的是String类型的值
再说你String类型的S里面也没有name这个属性啊

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
本帖最后由 狼人→浪人 于 2013-9-17 20:52 编辑

问题一、student类必须实现抽象类里面的抽象方法compareTo(Student) 。
问题二、student类的name"不能解决或者不是一个字段",所以把"s.name"更改为“s.getName()”使用封装获取属性的方法解决。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
胡智 发表于 2013-9-17 20:48
泛型的问题。
因为你已经定义了实现的comparable接口里面只能接受Student类型的对象。
而你在复写compareTo ...

没想到是泛型的笔误,回复够迅速的,拜谢了。Student s 写成 String  s 了  ,尴尬{:soso__10721991317771545052_1:}
回复 使用道具 举报
需要给对象定义一个获取name的方法
public String getName(){
   return name;
}
回复 使用道具 举报
这几天代码敲多了,眼睛都花了{:soso_e134:},莫怪啊{:soso_e112:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马