电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java異常ClassCastException的解決

瀏覽:44日期:2022-08-21 11:06:11

在說ClassCastException之前,先介紹下引用類型轉換;

引用類型轉換分為向上轉型和向下轉型兩種;

向上轉型:多態本身是子類類型向父類類型向上轉換的過程,這個過程是默認的;當父類引用指向一個子類對象時,便是向上轉換;

使用格式:

父類類型 變量名 = new 子類類型(); 

向下轉型:父類類型向子類類型向下轉換的過程,這個過程時強制;一個已經向上轉型的子類對象,將父類引用轉為子類引用,可以使用強制轉換的格式,便是向下轉換;

使用格式:

子類類型 變量名 = (子類類型) 父類變量名;

轉型的目的:

當使用多態方式調用方法時,首先檢查父類是否有該方法,如果沒有,則編譯錯誤,即父類不能調用子類擁有的,而父類沒有的方法;編譯都錯誤,更別說運行,要想調用子類特有的方法,必須做向下轉型;

轉型示例代碼:

定義類:

abstract class Animal { abstract void eat();} class Cat extends Animal { public void eat() { System.out.println('吃魚'); } public void catchMouse() { System.out.println('抓老鼠'); }} class Dog extends Animal { public void eat() { System.out.println('吃骨頭'); } public void watchHouse() { System.out.println('看家'); }}

測試類:

public class Test { public static void main(String[] args) { // 向上轉型 Animal a = new Cat(); // 調用的是 Cat 的 eat a.eat(); // 向下轉型 Cat c = (Cat)a; // 調用的是 Cat 的 catchMouse c.catchMouse(); // 向下轉型 Dog d = (Dog)a; // ClassCastException異常 d.watchHouse(); }}

上面這段代碼可以編譯,但在運行時,會報ClassCastException異常;

ClassCastException: 當試圖將對象強制轉換為不是實例的子類時,拋出該異常;

上面的測試類中創建了Cat類型對象,運行時不能轉換成Dog對象的,這兩個類型并沒有任何繼承關系,不符合類型轉換的定義 ,因此會拋出ClassCastException異常;

為了避免ClassCastException的發生,Java提供了 instanceof 關鍵字,給引用變量做類型的校驗,格式如下 :

變量名 instanceof 數據類型

如果變量屬于該數據類型,返回true;如果變量不屬于該數據類型,返回false;

可以使用instanceof將上面的測試類修改如下:

public class Test { public static void main(String[] args) { // 向上轉型 Animal a = new Cat(); // 調用的是 Cat 的 eat a.eat(); // 向下轉型 if (a instanceof Cat) { Cat c = (Cat)a; c.catchMouse(); } else if (a instanceof Dog) { Dog d = (Dog)a; d.watchHouse(); } }}

到此這篇關于Java異常ClassCastException的解決的文章就介紹到這了,更多相關Java異常ClassCastException內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網! 

標簽: Java
相關文章:
主站蜘蛛池模板: 技德应用| 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 铸铁平台,大理石平台专业生产厂家_河北-北重机械 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 江苏皓越真空设备有限公司 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | 北京康百特科技有限公司-分子蒸馏-短程分子蒸馏设备-实验室分子蒸馏设备 | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 四川成人高考_四川成考报名网 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 汝成内控-行政事业单位内部控制管理服务商 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 哈尔滨发电机,黑龙江柴油发电机组-北方星光| 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 |