微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

线程“main”中的异常 java.lang.ClassCastException:proj.Car 无法转换为 java.lang.Comparable

如何解决线程“main”中的异常 java.lang.ClassCastException:proj.Car 无法转换为 java.lang.Comparable

我正在尝试创建类似 this 创建图表的教程,但遇到错误Exception in thread "main" java.lang.classCastException: proj.Car cannot be cast to java.lang.Comparable

汽车类

 Integer id;
 String model;
 String brand;
 float price;

Cars 类(均已实例化):

TreeMap<Integer,Car> m;
TreeMap<Car,LinkedList<Car>> adjList;

主要内容

for(Map.Entry<Integer,Car> entry : a.m.entrySet()){
             Car val = entry.getValue();
             LinkedList<Car> list = new LinkedList<Car>();
             a.adjList.put(val,list);
}

这会为 adjList 中的每个 Car 对象创建一个 m,但问题是错误。我尝试使用 instanceof 确保输入的变量类型相同,并且返回 true。所以我不确定错误来自哪里。

解决方法

TreeMap 是一个 SortedMap 实现,它需要它的键来实现 Comparable 接口以便对键进行排序。

所以我假设 Car 没有实现 Comparable。如果你添加这个实现,你会没事的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。