问题描述
我正在尝试创建类似 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。如果你添加这个实现,你会没事的。