java类型强制转换异常例子_java.lang.unsatisfiedlinkerror

java类型强制转换异常例子_java.lang.unsatisfiedlinkerrorClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。这种异常是如何产生的呢?举一个比较形象的例子。Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:Animala1=newDog();//1A…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
这种异常是如何产生的呢?举一个比较形象的例子。
Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:

Animal a1 = new Dog();  // 1
Animal a2 = new Cat();  // 2
 
Dog 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的类型是什么。

注意:也就是具有父子关系的才可以转换,兄弟关系的就不可以

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196225.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月1日 上午9:15
下一篇 2025年10月1日 上午9:43


相关推荐

  • APP开发流程,移动应用开发流程

    APP开发流程,移动应用开发流程每天都有数以千计的移动应用程序发布到GooglePlay和AppleAppStore。其中一些移动应用程序是游戏,其他是社交网络,许多是电子商务应用程序。所有这些应用程序,如果专业构建,应遵循类似的移动应用程序开发过程。在BHW,我们已经构建了350多个网络和移动应用程序,在本文中,我将概述我们遵循的战略,设计和开发流程。每个应用程序都不同,我们的方法也在不断发展,但在开发移动应用程序时…

    2022年6月11日
    40
  • 猴子吃香蕉编程题_2只小猴子摘了3根香蕉

    猴子吃香蕉编程题_2只小猴子摘了3根香蕉实验目的(1)熟悉谓词逻辑表示法;(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。实验内容房子里有一只猴子(即机器人),位于a处。c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过python语言编程实现猴子摘香蕉问题的求解过程。”’猴子摘香蕉问题的Python编程实现”’#全局变量ii=0defMonkey_go_box(x,y.

    2026年4月14日
    5
  • SQL数据库学习心得

    SQL数据库学习心得使用润乾报表 需要良好的数据库编写逻辑 一条准确的数据库语言可以帮助你简单高效的完成报表的筛选条件 nbsp SQL 语句中有一个很好用的取字符串函数 SUBSTRING 格式如下 SUBSTRING string start position length 表示从字符串 string 的起始字符位置 start position 开始取字符 取出长度为 length 的字符串 比如 selec

    2026年3月17日
    2
  • 程序员在外包公司工作怎么样呢_从外包公司出来好找工作吗

    程序员在外包公司工作怎么样呢_从外包公司出来好找工作吗    今天刚刚好是周六,本来是可以好好休息的,计划好要去哪里玩的,但是天有不测风云,突然说银行领导要来检查,今天周末大家必须和平时一样照常上班,天呐!大哭!也无奈,只能照常上班咯,谁让别人是地主呢?我经常看到帖子上说或者论坛上大家在讨论程序员在外包公司工作怎么样?福利待遇好吗?工作累吗?上班时间怎么样?等等总之一堆一堆的,现在下班回家闲来无事,我就来说说在外包公司工作到底怎么样?是一种什么样的感觉?大家想不想听呢?那就让我慢慢道来…  &n

    2026年4月19日
    4
  • Oracle中保留两位小数

    Oracle中保留两位小数在最近的项目开发中 有个业务需求是界面显示的数字需要保留两位小数 目前我想到的解决方法有两种 1 在写 SQL 的时候 直接保留两位小数 2 在 java 代码里面将查询出来的数进行格式化处理 保留两位小数先说第一种方案 在 SQL 中的处理我使用的 oracle 数据库 所以有 3 个函数可以选择 分别是 1 ROUND A B 2 ROUND 函数是会将计算结果进行四舍五入的 如果所需

    2026年3月20日
    2
  • PHP获取搜索引擎关键词

    PHP获取搜索引擎关键词

    2021年10月30日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号