Java异常处理之java.lang.ClassCastException问题

 更新时间:2024年07月31日 08:51:40   作者:小红的成长日记  
这篇文章主要介绍了Java异常处理之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());

           }
        }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot请求找不到路径异常的问题

    springboot请求找不到路径异常的问题

    这篇文章主要介绍了springboot请求找不到路径异常的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Intellij IDEA中一次性折叠所有Java代码的快捷键设置

    Intellij IDEA中一次性折叠所有Java代码的快捷键设置

    这篇文章主要介绍了Intellij IDEA中一次性折叠所有Java代码的快捷键设置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java面向国际化项目开发需遵循的命名规范

    java面向国际化项目开发需遵循的命名规范

    这篇文章主要为大家介绍了在参与开发国际化项目时需遵循的java命名规范,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • SpringBoot实现物品收藏功能

    SpringBoot实现物品收藏功能

    这篇文章主要介绍了SpringBoot实现物品收藏功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 解析spring事务管理@Transactional为什么要添加rollbackFor=Exception.class

    解析spring事务管理@Transactional为什么要添加rollbackFor=Exception.class

    这篇文章主要介绍了spring事务管理@Transactional为什么要添加rollbackFor=Exception.class,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • idea新建Springboot项目,设置默认maven和jdk版本方式

    idea新建Springboot项目,设置默认maven和jdk版本方式

    这篇文章主要介绍了idea新建Springboot项目,设置默认maven和jdk版本方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring mvc JSON数据交换格式原理解析

    Spring mvc JSON数据交换格式原理解析

    这篇文章主要介绍了Spring mvc JSON数据交换格式原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java字符串比较方法equals的空指针异常的解决

    Java字符串比较方法equals的空指针异常的解决

    这篇文章主要介绍了Java字符串比较方法equals的空指针异常的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java Volatile关键字同步机制详解

    Java Volatile关键字同步机制详解

    这篇文章主要介绍了Java Volatile关键字同步机制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringBoot实现发送邮件功能过程图解

    SpringBoot实现发送邮件功能过程图解

    这篇文章主要介绍了SpringBoot实现发送邮件功能过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论