已解决java.lang.ClassCastException异常的正确解决方法,亲测有效!!!
已解决java.lang.ClassCastException异常的正确解决方法,亲测有效!!!
文章目录
- 报错问题
- 解决方法
- 福利
报错问题
粉丝群里面的一个小伙伴敲代码时发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错信息如下:
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
这种异常是如何产生的呢?举一个比较形象的例子。
Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:
Animal a1 = new Dog(); // 1
Animal a2 = new Cat(); // 2Dog d1 = (Dog)a1; //3
Dog d2 = (Dog)a2; //4
第3行代码和第4行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗(Dog),但是第4行代码将产生java.lang.ClassCastException。原因是你要把一个猫(a2这只动物是猫)转换成狗,而第3行中是把狗转换成狗,所以可以。
从上面的例子看,java.lang.ClassCastException是进行强制类型转换的时候产生的异常,强制类型转换的前提是父类引用指向的对象的类型是子类的时候才可以进行强制类型转换,如果父类引用指向的对象的类型不是子类的时候将产生java.lang.ClassCastException异常。就是上面a1和a2都是动物,但是a1这只动物是一只狗,而a2这只动物是猫,所以要把a1转换成狗可以,因为a1本身就是狗,而a2是一只猫,所以要转换成狗就出错了。
解决方法
解决方法如下
如果你知道要访问的的对象的具体类型,直接转换成该类型即可。如果不能确定类型可以通过下面的两种方式进行处理(假设对象为o):
1、通过o.getClass().getName()得到具体的类型,可以通过输出语句输出这个类型,然后根据类型进行进行具体的处理。
2、通过if(o instanceof 类型)的语句来判断o的类型是什么。
福利
每周会送6本技术书籍包邮到家
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复
大家可以进社区裙或者添加博主微信
点击下方链接即可
http://t.csdn.cn/6kInJ
已解决java.lang.ClassCastException异常的正确解决方法,亲测有效!!!相关推荐
- 已解决java.lang.NoClassDefFoundError异常的正确解决方法,亲测有效!!!
已解决java.lang.NoClassDefFoundError异常的正确解决方法,亲测有效!!! 文章目录 报错问题 报错原因 解决方法 NoClassDefFoundError解决示例 福利 报 ...
- 已解决java.lang.Integer cannot be cast to java.lang.String异常的正确解决方法,亲测有效!!!
已解决java.lang.Integer cannot be cast to java.lang.String异常的正确解决方法,亲测有效!!! 文章目录 报错问题 解决方法 福利 报错问题 1.在执 ...
- 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long异常的正确
已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long异常的正确 ...
- 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String异常的
已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String异常的 ...
- 已解决java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map异常的正确解决方法,亲测有效!!
已解决java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map异常的正确解决方法,亲测有效!! ...
- java类型转换异常_解决java.lang.ClassCastException的java类型转换异常的问题
解决java.lang.ClassCastException的java类型转换异常的问题,异常,对象,错误,给大家,会报 解决java.lang.ClassCastException的java类型转换 ...
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
2019独角兽企业重金招聘Python工程师标准>>> java.lang.ArrayIndexOutOfBoundsException异常分析及解决 这是一个非常常见的异常,从名字 ...
- java.lang.IllegalStateException异常原因和解决
1.出现该异常场景 Iterator.remove() 迭代删除 引发 2.问题定位分析 1. Iterator.remove() 迭代删除 引发 重复 remove 导致出现该异常 场景示例 @Te ...
- 全网详细解决java.lang.ClassCastException: xxx类型 cannot be cast to xxx类型
文章目录 1. 文章引言 2. 复现错误 3. 分析错误 4. 解决错误 5. 文章结论 1. 文章引言 xxx类型可以为如下类型: 我们自定义的类: Student类 Project类 Person ...
最新文章
- es6 日期字符串转日期_量化数据预处理-中文日期(含)转英文日期
- pip install 时报错 ERROR: Could not install packages due to an EnvironmentError: [WinError 5]
- 主成分分析法_“主成分分析法”——线上讨论会等你加入
- Final Cut Pro模版网站
- 7-26 有重复的数据I (10 分)
- http请求协议分析
- linux 系统yum下安装vnc
- django 1.8 官方文档翻译: 9-1-1 国际化和本地化
- RTI_DDS自定义插件开发 6 监听者
- 信息系统项目管理--案例分析笔记
- LTE-OA系统架构图
- 概率论与数理统计---全概率、贝叶斯公式、事件独立性
- 简述网桥的特点_网桥的特点
- 联想服务器无线网卡被禁用,win10系统联想笔记本禁用无线网络适配器的处理技巧...
- 【Oracle】-Difference between Instance recovery and Crash Recovery
- lol怎么显示连接服务器失败怎么回事,lol为什么有网无法连接服务器失败
- JVM 内存分哪几个区,每个区的作用是什么
- WebUploader图片上传实例
- 《数据结构与算法》——树与二叉树之遍历总结
- 抖音python真的那么好吗_python看抖音用户画像,摩羯天蝎居然刷得最多?