Comparable.Student cannot be cast to java.lang.Comparable

因爲String類已經實現了Comparable的接口,如果在程序中要使用自定義的類,那麼就要讓自定義的類實現Comparable接口,主要是實現CompareTo方法。

下面的程序,如果把Student類實現Comparable接口的內容全部註釋的時候就會出現上面的錯誤。


classStudentimplementsComparable{

private String name;

private Integer score;


public Student (String name, Integer score) {

this.name = name;

this.score = score;

   }

publicint compareTo(Object o) {

Studentn = (Student) o;

int a = score.compareTo(n.score);

return (a != 0 ? a : name.compareTo(n.name)); //返回   0   表示 this == obj

//返回正數表示 this  >  obj返回負數表示 this  <  obj

   }

public String toString() {

return"name:" + name + " score:" +score.toString();

   }


}


publicclass ComparableTest {


publicstaticvoid main(String[] args) {

List l1 = newLinkedList();

l1.add(newStudent("ttt", 66));

l1.add(newStudent("bbb", 77));

l1.add(newStudent("ccc", 99));

l1.add(newStudent("fff", 88));

l1.add(newStudent("aaa", 66));

l1.add("1");

      System.out.println(l1);

Collections.sort(l1);

      System.out.println(l1);

   }


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章