为了账号安全,请及时绑定邮箱和手机立即绑定

comparTo方法,明明返回的是int类型的ID,什么时候成了String类型

课程第7分30左右讲到,Student类comparTo 方法比较结果:10000、37、644、897.是按照字符串的形式比较的,先比较第一位。

问:Student类的comparTo方法,明明返回的是int类型的ID,什么时候成了String类型,如果返回的是int类型的1000、37、644、897.那应该是按照数字顺序啊?

正在回答

2 回答

我犯了两个错误:

1、我忘记了老师当初声明的变量String id; 不是 int id;

2、在

public int compareTo(Student o){

return this.id.compareTo(o.id); //相当于返回的是return 0/正整数/负整数;

}

方法中,我误认为两个compareTo 都是Student类的方法。那么第二个compareTo(o.id)就不对了,o.id是String类型,而第一个要的参数是Student类型。

实际上第一个compareTo是Student类的方法。而第二个compareTo是this.id (他是个String)这个String 的方法。可以去查java.lang.String.compareTo()方法。两个compareTo不是一码事,是两个类对comparable接口的不同实现下方法的重写。

1 回复 有任何疑惑可以回复我~

我晕,刚问完就又仔细看了看,我犯了个错误。老师写的是

public int compareTo(Student o){

return this.id.compareTo(o.id);//“this.id.compareTo(o.id)”执行后的值就三类:正整数(大于)、负整数(小于)、0(相等)。

//首先Student类的ID当初声明的就是String类型的(我又回头看了下老师写的Student类,确实是String类型String id;) 这里相当于是this.id.compareTo()   执行了  id值的比较,然后返回正、负、零。

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

comparTo方法,明明返回的是int类型的ID,什么时候成了String类型

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信