栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java异常处理—1. java.lang.ClassCastException

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java异常处理—1. java.lang.ClassCastException

类型转换异常:两个类型间转换不兼容 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; //改行报错
           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());

           }
        }

报错代码:
StudentPra stu65 = (StudentPra) obj;

1.首先,读报错信息:
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
类型转换异常,就是类型不兼容。

3.看代码

 Map map = new HashMap();
 map.put("Java1",java1);

我这里键存储的类型为String类型;

       for (Object obj : set){
            
           StudentPra stu65 = (StudentPra) obj; //改行报错
           System.out.println(stu65.getClassStu());
           
           List stuList = (List) map.get(obj);
           
           for (Object o2 : stuList){
           ...
           }
       }

而我在改行把String类型转换为了StudentPra类型,所以在后来需要通过键名获取到键值的时候,出现类型不兼容的问题。

StudentPra stu65 = (StudentPra) obj; //改行报错

实际问题出在:

List stuList = (List) map.get(obj);
无法正确通过String类型的键获取到对应类型的值!

其实我的代码在书写的时候就有点问题:因为我定义的键的类型为String类型,所以我大可直接输出,但是现在也算是收获了一种异常处理!

正确代码:

        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());

           }


        }

欢迎关注微信公众号:小红的成长日记,一起学Java!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/839503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号