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)方法用于比较两个对象的大小。