Java異常處理之java.lang.ClassCastException問(wèn)題
類型轉(zhuǎn)換異常:兩個(gè)類型間轉(zhuǎn)換不兼容
java.lang.ClassCastException:異常解決!
下面僅僅展示部分代碼:
//java1和java2都是list集合 Map map = new HashMap(); map.put("Java1",java1); map.put("Java2",java2); Set set = map.keySet(); for (Object obj : set){ StudentPra stu65 = (StudentPra) obj; //改行報(bào)錯(cuò) System.out.println(stu65.getClassStu()); List stuList = (List) map.get(obj); for (Object o2 : stuList){ StudentPra students = (StudentPra) o2; System.out.println("姓名"+students.getName()+",生日"+students.getBrithday()); } }
報(bào)錯(cuò)代碼
StudentPra stu65 = (StudentPra) obj;
1.首先,讀報(bào)錯(cuò)信息:
Exception in thread “main” java.lang.ClassCastException: java.lang.String cannot be cast to cn.xiaozheng.test.StudentPra
at cn.xiaozheng.test.StudentPraTest.main(StudentPraTest.java:53)
2.剖析:
java.lang.String cannot be cast to cn.xiaozheng.test.StudentPra
類型轉(zhuǎn)換異常,就是類型不兼容。
3.看代碼
Map map = new HashMap(); map.put("Java1",java1);
我這里鍵存儲(chǔ)的類型為String類型;
for (Object obj : set){ StudentPra stu65 = (StudentPra) obj; //改行報(bào)錯(cuò) System.out.println(stu65.getClassStu()); List stuList = (List) map.get(obj); for (Object o2 : stuList){ ... } }
而我在改行把String類型轉(zhuǎn)換為了StudentPra類型,所以在后來(lái)需要通過(guò)鍵名獲取到鍵值的時(shí)候,出現(xiàn)類型不兼容的問(wèn)題。
StudentPra stu65 = (StudentPra) obj; //改行報(bào)錯(cuò)
實(shí)際問(wèn)題出在
List stuList = (List) map.get(obj);
無(wú)法正確通過(guò)String類型的鍵獲取到對(duì)應(yīng)類型的值!
其實(shí)我的代碼在書寫的時(shí)候就有點(diǎn)問(wèn)題:因?yàn)槲叶x的鍵的類型為String類型,所以我大可直接輸出,但是現(xiàn)在也算是收獲了一種異常處理!
正確代碼:
Map map = new HashMap(); map.put("Java1",java1); map.put("Java2",java2); Set set = map.keySet(); for (Object obj : set){ System.out.println(obj); List stuList = (List) map.get(obj); for (Object o2 : stuList){ StudentPra students = (StudentPra) o2; System.out.println("姓名"+students.getName()+",生日"+students.getBrithday()); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?3.2.5集成mysql的詳細(xì)步驟記錄
作為一名Java開發(fā)者,我們經(jīng)常需要在我們的應(yīng)用程序中使用數(shù)據(jù)庫(kù),在Spring Boot中集成數(shù)據(jù)庫(kù)是非常容易的,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot?3.2.5集成mysql的詳細(xì)步驟,需要的朋友可以參考下2024-04-04Spring集成JPA配置懶加載報(bào)錯(cuò)解決方案
這篇文章主要介紹了Spring集成JPA配置懶加載報(bào)錯(cuò)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式
這篇文章主要介紹了springboot使用之多個(gè)filter的執(zhí)行順序以及配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08springboot+thymeleaf+mybatis實(shí)現(xiàn)甘特圖的詳細(xì)過(guò)程
這篇文章主要介紹了springboot+thymeleaf+mybatis實(shí)現(xiàn)甘特圖的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07