什么情况下会导致同一种类型转换异常?
比如String a = (String)obj异常

解决方案 »

  1.   

    父类转子类特别容易出现,我是这么理解:父类A
    子类A1,A2A a = new A1();A2 b = (A2)a;//基本异常定了
    我的想打就是父类A,只有2属性name,age;子类A1比父类多了个address;子类A2比父类多了个school;A1继承A,所以当我说它是A也无可厚非,因为它就有name和age;
    但是我要硬说它是A2,那school呢,显然没。
    所以我记得书本上总结的一句:向下类型转换一定要看生成实例对象的是哪个类.
      

  2.   

    什么情况下会导致同一种类型转换异常?
    比如String a = (String)objobj不是String的时候导致 转换异常
      

  3.   

    个人理解:向上转型一般不会,但是向下转型的话,很有可能出现异常
    例如:基本数据类型转换的时候:
    float a=1.0;
    这样编译器是会提示的;因为a是float型的,而1.0编译器是默认double型的,那么的话,由double型转换成float型会丢失精度,所有会出现报错;结合你上面的就可以知道了,既然你已经强制转换了,怎么会出错呢?
      

  4.   

    Child1 和 Child2 都继承自 Parent。
    Child1 和 Child2 都是 Parent 类型,但相互强制转换的话,会报错。
      

  5.   

    多谢各位。
    我是说classA强转classA时导致的,日志显示两个classLoader不同。
    参考一下
    http://blog.csdn.net/wangchengsi/article/details/2110647