zoukankan      html  css  js  c++  java
  • 异常错误cannot be cast to java.lang.Comparable解决办法

    这两天笔者几篇文章介绍了改异常错误的文章. 关联文章的地址

                对于TreeMap,他是一个有序的map,当你将key put到treeMap中,它会根据你所供给的排序规矩进行排序插入,如果没有供给,则使用默许。

                cannot be cast to java.lang.Comparable,碰到这个异常错误,就是说treeMap并不知道该如何put,就会报这个异常错误。第一次put时,因为为空,所以不需要比拟,即不会报错。但是当第二次put时,treeMap为了确保他是有序的就必须比拟,这个时候发明这两个key根本无法比拟,则抛出该异常错误。

                要解决这个异常错误有两种解决办法。第一种在构造TreeMap时指定一个比拟器,这个比拟器用于比拟两个值,并且返回一个整数值作为他们的比拟结果。第二种就是key实现Comparable接口。

                上面实例是我做毕业设计过程中,对订单进行排序使用的TreeMap构造器:

        每日一道理
    流逝的日子像一片片凋零的枯叶与花瓣,渐去渐远的是青春的纯情与浪漫。不记得曾有多少雨飘在胸前风响在耳畔,只知道沧桑早已漫进了我的心爬上了我的脸。当一个人与追求同行,便坎坷是伴,磨难也是伴。
    /**
              * 获得指定构造器的TreeMap对象
              */
             publicMap<Order, List<OrderDetail>> getTreeMap(){
                       Map<Order,List<OrderDetail>> map = new TreeMap<Order,List<OrderDetail>>(
                                         //比拟器按照降序实现
                                         (Comparator<?super Order>) new Comparator<Order>(){
                                                   publicint compare(Order order1, Order order2) {
                                                            returnorder2.getOrderId().compareTo(order1.getOrderId());
                                                   }
                                         }
                       );
                       returnmap;
             }

    文章结束给大家分享下程序员的一些笑话语录: 程序员的愿望
      有一天一个程序员见到了上帝.上帝: 小伙子,我可以满足你一个愿望.程序员: 我希望中国国家队能再次打进世界杯.
      上帝: 这个啊!这个不好办啊,你还说下一个吧!
      程序员: 那好!我的下一个愿望是每天都能休息6个小时以上.
      上帝: 还是让中国国家打进世界杯.

  • 相关阅读:
    jenkins 自动化打包flutter android apk
    k8s 玩转 jenkins
    ceph rbd 找回 pvc
    mysql学习教程之mysql管理
    php链接mysql,php链接mysql的常用方法
    mysql从零开始之MySQL 教程
    mysql从零开始之MySQL 安装
    MySQL8.0.20下载与安装详细图文教程,mysql安装教程
    MySQL8.0.20安装教程,MySQL8.0.20安装详细图文教程
    windwos10安装mysql8.0.20详细图文教程
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3084573.html
Copyright © 2011-2022 走看看