目录

1 问题描述

2 问题分析

2.1 Java

2.2 EasyPoi

2.3 JFreeChart

2.4 EasyExcel


1 问题描述

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to java.util.List

2 问题分析

2.1 Java

1、Set不能直接强转为List,强转会报错。

Map<String, Integer> map= new HashMap<>();
List<String> list= (List<String>) map.keySet();

解决办法:使用new ArrayList()将Set转换为List。

Map<String, Integer> map= new HashMap<>();
List<String> list= new ArrayList(map.keySet());

更多类型之间相互转换请参考以下博客。

java 数组、List、Set互相转化

2.2 EasyPoi

1、使用EasyPoi进行内容替换时,WordExportUtil.exportWord07()第一个传参类型为org.apache.poi.xwpf.usermodel.XWPFDocument,导致转换成cn.afterturn.easypoi.word.entity.MyXWPFDocument报错。

 public void replaceContent(HttpServletResponse response) {try {//读文件ClassPathResource cpr = new ClassPathResource("/doc/模板.docx");XWPFDocument document = new XWPFDocument(cpr.getInputStream());//生成文本内容MapMap<String, Object> contentMap = new HashMap<>();contentMap.put("xudongmaster1", "旭东怪1");contentMap.put("xudongmaster2", "旭东怪2");//替换文本内容WordExportUtil.exportWord07(document, contentMap);//返回流response.setHeader("content-type", "application/octet-stream");response.setContentType("application/octet-stream;charset=UTF-8");response.setHeader("Content-Disposition", "attachment; filename=" + new String("模板.docx".getBytes("utf-8"), "ISO-8859-1"));OutputStream outputStream = response.getOutputStream();document.write(outputStream);outputStream.flush();outputStream.close();} catch (Exception e) {e.printStackTrace();}}

解决办法:

WordExportUtil.exportWord07()第一个传参类型改为cn.afterturn.easypoi.word.entity.MyXWPFDocument。

    public void replaceContent(HttpServletResponse response) {try {//读文件ClassPathResource cpr = new ClassPathResource("/doc/模板.docx");XWPFDocument document = new MyXWPFDocument(cpr.getInputStream());//生成文本内容MapMap<String, Object> contentMap = new HashMap<>();contentMap.put("xudongmaster1", "旭东怪1");contentMap.put("xudongmaster2", "旭东怪2");//替换文本内容WordExportUtil.exportWord07(document, contentMap);//返回流response.setHeader("content-type", "application/octet-stream");response.setContentType("application/octet-stream;charset=UTF-8");response.setHeader("Content-Disposition", "attachment; filename=" + new String("模板.docx".getBytes("utf-8"), "ISO-8859-1"));OutputStream outputStream = response.getOutputStream();document.write(outputStream);outputStream.flush();outputStream.close();} catch (Exception e) {e.printStackTrace();}}

2.3 JFreeChart

1、使用ChartFactory.createScatterPlot()创建散点图方法获取JFreeChart类型的对象时,不能使用JFreeChart.getCategoryPlot()方法来获取org.jfree.chart.plot.CategoryPlot类型的plot对象,因为plot对象本身是org.jfree.chart.plot.XYPlot类型,而JFreeChart.getCategoryPlot()方法会直接将org.jfree.chart.plot.CategoryPlot类型强转为org.jfree.chart.plot.XYPlot类型,这会直接导致报错。

解决办法:使用JFreeChart.getXYPlot()方法。

2.4 EasyExcel

1、自定义处理器使用了org.apache.poi.xssf.usermodel.XSSFSheet对象,但是传了org.apache.poi.xssf.streaming.SXSSFSheet对象,导致报错。

解决办法:注册处理器之前先调用.inMemory(Boolean.TRUE)方法,这样就会传org.apache.poi.xssf.usermodel.XSSFSheet对象。

ExcelWriter excelWriter = EasyExcel.write(fileOutputStream).inMemory(Boolean.TRUE).registerWriteHandler(new CustomWaterMarkHandler(waterMarkList)).build();

Java ClassCastException: xxx cannot be cast to xxx 问题4种情况解决(Java、EasyPoi、JFreeChart、EasyExcel)相关推荐

  1. Spring-Data-Redis--解决java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx

    原文网址:Spring-Data-Redis--解决java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xx ...

  2. java.util.LinkedHashMap cannot be cast to xxx.xxx.xxx

    /*** 例: List<JavaBean> pojo= (List<JavaBean>) map.get("tableData");* 遇到错误如下:ja ...

  3. ClassCastException: java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject 的解决办法

    问题概述 关于这个问题,是与第三方公司合作,远程调用服务接口时(就相当于调用远程服务提供者)遇到的这个问题," java.lang.ClassCastException: java.lang ...

  4. java.util.LinkedHashMap cannot be cast to xxx

    java.util.LinkedHashMap cannot be cast to com.entity.Person 使用mybatis, resultMap映射的是实体类Person, 查询出来的 ...

  5. java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader

    java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...

  6. 解决java.util.LinkedHashMap cannot be cast to xxx(domain实体类)的问题

    一.问题描述 1.最近在做分布式项目,需要用到其他子模块接口方法返回数据,同时这个项目也是前后端分离项目,后台接口返回的格式都是封装好了的json格式,我想拿到其中的data数据,如下图所示: 2.我 ...

  7. 关于 java.util.LinkedHashMap cannot be cast to xxx错误的解决方案

    List<Entity> list = (List<Entity>) result.get("list"); for(Object obj : list){ ...

  8. redis java.util.LinkedHashMap cannot be cast to XXX

    这种问题是 Redis 中取出来的值,强转成我们需要的类型时报错 解决: 比如我们需要转User类 Object obj = valueOperations.get(key); User u = JS ...

  9. 运行时发现 xxx cannot be cast to xxx

    运行时发现 java.lang.ClassCastException: com_mybatis.pojo.User cannot be cast to com_mybatis_config.pojo. ...

最新文章

  1. java nextline_Java编程语言基础的9根支柱
  2. 关于AD编程的一些资料
  3. Linux中mysql的操作
  4. MySQL安装步骤及相关问题解决
  5. php运行socket服务器,PHP_php简单socket服务器客户端代码实例,本篇文章分享一个简单的socket - phpStudy...
  6. Java给定一个字符串数组,判断每个字符出现次数
  7. C# winform 自定义皮肤制作
  8. java线程变量值_JAVA线程中对变量值的修改
  9. [译]用javascript实现一门编程语言-语言构想
  10. Keras-1 学习Keras,从Hello World开始
  11. ApacheCN Linux 译文集(二) 20211206 更新
  12. 修改mslsql服务器端口号,复制服务器安装步骤.doc
  13. 销毁session的三种方式
  14. matlab mac 更改语言,MAC让Matlab编辑器显示中文的方法
  15. 盘点服装进销存软件和生产进销存软件排行榜
  16. c/c++ hash表 (哈希表、字典表)
  17. 支付宝对账单接口对接
  18. 软件测试工程师要具备哪些从业技能?
  19. 固态硬盘SSD与机械硬盘HDD
  20. C# ip地址的查询

热门文章

  1. nginx日志模块ngx_http_log_module源码分析
  2. 苹果开发者账号可以创建多少测试证书_苹果开发者帐户能创建多少个发布证书...
  3. gnutls_handshake() failed: A TLS packet with unexpected length was received
  4. java图片降噪_Java基于opencv实现图像数字识别(四)—图像降噪
  5. nide-js.nt
  6. 商丘学院计算机考研,商丘学院院校简介_商丘学院研究生院 - 中国考研网
  7. STP的端口状态,BPDU,计时器
  8. 专为小白写的官方win10系统安装教程(U盘装机)
  9. 在 Ubuntu 16.04上安装 vsFTPd
  10. Lesson 18 Kaggle医学影像识别 PART 1