关于comparable的compareTo()方法重写和comparator的compare(Student o1, Student o2)方法重写问题
像这里,为了把Collections.sort改为按对象的ID来排序,所以重写compareTo方法,并且用了this.getId().compareTo(o.getId()) 语句,我不懂的是,这里的compareTo方法已经重写为只接收Student类型的对象了,为什么它还能接收o.getId()返回的字符串类型值呢?
但是对于comparator的compare方法重写中,老师还是用comparable例子中compareTo那个语句比较并返回。但是我自己试了一下仿照compareTo那种形式用compare方法来判断,如上图示。这个时候编译器报错了,说是只能接收Student类型的对象,不能接收字符串。
希望有前辈可以解答一下,为什么comparable的compareTo()方法示例中,明明定义了只接收Student对象,但是在return那里还是可以接受字符串。 而在comparator的compare()方法重写示例中使用类似的思路写就会报错呢?