Exception in thread "main" java.lang.ClassCastException: class itheima11.student1 cannot be cast to class java.lang.Comparable (itheima11.student1 is in unnamed module of loader 'app'; java.lang.Comparable is in module java.base of loader 'bootstrap')
at java.base/java.util.TreeMap.compare(TreeMap.java:1569)
at java.base/java.util.TreeMap.addEntryToEmptyMap(TreeMap.java:776)
at java.base/java.util.TreeMap.put(TreeMap.java:785)
at java.base/java.util.TreeMap.put(TreeMap.java:534)
at java.base/java.util.TreeSet.add(TreeSet.java:255)
当您试图将对象强制转换为非类型时,会引发此错误消息。
这里是因为将类 itheima11.student1 的对象强制转换为类 java.lang.Comparable,但它没有实现。
错误消息表明您需要在 student1 类中实现 Comparable 接口。
感悟:
当 TreeSet 集合中的元素是某个类时,这个类一定要实现 Comparable 接口,要不然就会报错。因为 TreeSet 只能对实现了 Comparable 接口的类对象进行排序,因为 Comparable 接口中有一个 `compareTo (Object o) 方法用于比较两个对象的大小。