在主线程中的异常 "main" java.lang.ClassCastException: class itheima11.student1 无法转换为 class java.lang.Comparable (itheima11.student1 在加载器 'app' 的未命名模块中;java.lang.Comparable 在加载器 'bootstrap' 的 java.base 模块中)
在 java.base/java.util.TreeMap.compare (TreeMap.java:1569) 中
在 java.base/java.util.TreeMap.addEntryToEmptyMap (TreeMap.java:776) 中
在 java.base/java.util.TreeMap.put (TreeMap.java:785) 中
在 java.base/java.util.TreeMap.put (TreeMap.java:534) 中
在 java.base/java.util.TreeSet.add (TreeSet.java:255) 中
當您嘗試將物件強制轉換為非類型時,會引發此錯誤訊息。
這裡是因為將 itheima11.student1 類別的物件強制轉換為 java.lang.Comparable 類別,但它並未實作。
錯誤訊息指出您需要在 student1 類別中實作 Comparable 介面。
感悟:
當 TreeSet 集合中的元素是某個類別時,這個類別一定要實作 Comparable 介面,否則就會報錯。因為 TreeSet 只能對實作了 Comparable 介面的類別物件進行排序,因為 Comparable 介面中有一個 `compareTo (Object o) 方法用於比較兩個物件的大小。