【问题标题】:Exception in thread "main" java.lang.ClassCastException: proj.Car cannot be cast to java.lang.Comparable线程“主”java.lang.ClassCastException 中的异常:proj.Car 无法转换为 java.lang.Comparable
【发布时间】:2021-05-20 17:29:28
【问题描述】:

我正在尝试创建类似 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);
}

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

【问题讨论】:

标签: java treemap


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2011-04-13
    相关资源
    最近更新 更多