开发者社区> 问答> 正文

[@饭娱咖啡][¥20]类型转换异常 java.lang.ClassCastException

在不能确定访问的对象的具体类型时类型转换异常,java.lang.ClassCastException。遇到这样的异常的时候如何解决呢?

展开
收起
wdccz烽火 2018-11-14 11:25:08 2334 0
2 条回答
写回答
取消 提交回答
  • 主要从事 Java 后端开发。

    有以下几个处理方案,你参考以下:
    1.转为访问对象相应类型:通过 object.getClass().getName() ,判断访问对象时什么类型,根据访问对象的具体类型进行转换
    2.如果是业务需求,需要在此处进行强制转换,可以通过条件语句判断访问对象是否是可以强制转换的类型,不是则抛出异常或者进行其他方式处理
    例子如下:

    public static void main(String[] args) throws Exception {
        Sex man = new Man();  // 性别男
        Sex woman = new Woman();  // 性别女
        Sex unknow = new Sex();//不确定性别
    
        if (unknow instanceof Sex) {
            Man man1 = (Man) unknow;
            ...//其他业务逻辑
        } else {
            throw new Exception();//也可以不处理
        }
    
    }
    
    2019-07-17 23:14:08
    赞同 展开评论 打赏
  • 阿里云问答专家、阿里云认证云计算工程师、Java研发工程师

    我建议的建议是在转换之前先用 object instanceof class 判断是否是指定类型,然后再强制转换。

    2019-07-17 23:14:08
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载