在主线程中发生异常:"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) 方法用於比較兩個對象的大小。