在不能确定访问的对象的具体类型时类型转换异常,java.lang.ClassCastException。遇到这样的异常的时候如何解决呢?
有以下几个处理方案,你参考以下:
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();//也可以不处理
}
}
我建议的建议是在转换之前先用 object instanceof class 判断是否是指定类型,然后再强制转换。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。