这个错误也很常见,通常在程序中出现强制类型转换时出现这个错误,如下面这段代码所示:

        public static Map m = new HashMap() {{put("a", "2");}};public static void main(String[] args) {Integer isInt = (Integer) m.get("a");System.out.println(isInt);}

当强制将本来不是Integer类型的字符串转成Integer类型时会报如下错误:

JVM在做类型转换时会按照如下规则进行检查:

  • 对于普通对象,对象必须是目标类的实例或目标类的子类的实例。如果目标类是接口,那么会把他当作实现了该接口的一个子类。
  • 对于数组类型,目标类必须是数组类型或java.lang.Object、java.lang.Cloneable、java.io.Serializable。

如果不满足上面的规则,JVM会报这个错误了。要避免这个错误有两种方式:

  • 在容量类型中显式的指明这个容器所包含的对象类型,如在上面的Map中可以写为Map<String, Integer> m = new HashMap<String, Integer>(),这样上面的代码在编译阶段就会检查通过。
  • 先通过instanceof检查是不是目标类型,然后再进行强制类型转换。

ClassCastException。相关推荐

  1. weblogic部署,常见错误解决二——ClassCastException

    3. weblogic使用了自己带的xml解析器造成的ClassCastException 早上接到项目组发来的java程序接口报错信息.分析其中出错信息如下: 1. Warning: Caught ...

  2. java.lang.ClassCastException(java强制类型转换异常)

    ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误.下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法. 这 ...

  3. Myeclipse J2EE Project, 折腾死我了。

    这两天因为想测试一下群集Cache,用Myeclipse 建了一个测试程序,快把我折腾死了. 在Myeclipse的设计中,Project的粒度很细.EAR Project, WAR Project, ...

  4. java 类型转换异常_java.lang.ClassCastException(java强制类型转换异常)

    ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误.下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法. 这 ...

  5. 超全Java面试知识点总结(网络、OS、JVM、并发、算法、数据库、框架。。)

    在之前的基础上修正了若干内容,增加了包括缓存.CDN.进程通信方式等新内容,精简了整体内容近3万字方便背诵. 计算机网络 网络分层⭐ 国际标准化组织提出了 OSI 模型:应用层.表示层.会话层.运输层 ...

  6. 已解决java.lang.ClassCastException异常的正确解决方法,亲测有效!!!

    已解决java.lang.ClassCastException异常的正确解决方法,亲测有效!!! 文章目录 报错问题 解决方法 福利 报错问题 粉丝群里面的一个小伙伴敲代码时发生了报错(当时他心里瞬间 ...

  7. TreeMap源码解析。

    /*** 基于红黑树(Red-Black tree)的 NavigableMap 实现.该映射根据其键的自然顺序进行排序,* 或者根据创建映射时提供的Comparator 进行排序,具体取决于使用的构 ...

  8. classcastexception(classcastexception null)

    java.lang.ClassCastException怎么解决 1. 打开我们的开发工具myeclispe,然后点击File,选择New,在点击Java Project选项来新建个java工程项目: ...

  9. 手把手教你解决ClassCastException类型转换异常

    一. 前言 最近有很多初学Java的小伙伴,甚至是学习到了JavaWeb及框架阶段的小伙伴,跑来问千锋健哥:该如何解决Java中的ClassCastException类型转换异常?为了给大家解决这个较 ...

最新文章

  1. python的文件类型
  2. 下拉列表控制文本框的个数思路
  3. Java---------- LeetCode——746. 使用最小花费爬楼梯
  4. 看事实风向的网站,做风向建模和出去放风筝,飞无人机的时候可以看一看~
  5. java通过commons-fileupload实现多张图片的上传(servlet)
  6. 前端学习(1682):前端系列实战课程之让蛇改变方向
  7. numpy维度交换_数据分析-gt;基本操作numpy(1)
  8. 印记博客IBO博客系统 v2.0.2源码
  9. 如何向父母解释什么是爬虫?
  10. DragonBones快速入门指南
  11. 微型计算机断电后信息将会丢失,2011年计算机基础知识精选部分及答案三
  12. OverflowError: Python int too large to convert to C long 在Windows环境下Python报错
  13. rollup函数 和cube函数 的区别?
  14. 东欧小哥打造超全Python速查表登上GitHub热榜,标星4600+
  15. 多核处理器_胶水多核等于Low?处理器封装没有那么简单!
  16. Java中undefined是什么意思,Haskell中的undefined和Java中的null有什么区别?
  17. gmail 邮件客户端设置
  18. acwing.95.费解的开关
  19. [附源码]JAVA+ssm基于Internet快递柜管理系统(程序+Lw)
  20. Windows10重装设置(个人)

热门文章

  1. 双生视界服务器维护,《双生视界》7月30日7点停服维护公告
  2. 全栈、云原生的数据分析时代已来,我们如何抓住机会?
  3. 为了实施一套ERP,你花了多少冤枉钱?
  4. Unity3D研究院之FBX模型的载入与人物行走动画的播放(十二)
  5. MySQL数据库修改字段编码
  6. 玩着也能学python电子版_玩着也能学Python
  7. 基于Hadoop的疫情信息分析与可视化研究——包含大屏可视化及预测算法
  8. AI大视觉(二十) | 小目标检测的tricks汇总
  9. Ubuntu 22.04 一次及其繁琐的 允许 Traceroute 探测漏洞修复之旅
  10. 实验6、8254定时/计数器实验