java.lang.ClassCastException(java强制类型转换异常)

ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示: ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示:
下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。 下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
这种异常是如何产生的呢? 这种异常是如何产生的呢?
举一个比较形象的例子。 举一个比较形象的例子。
  Animal表示动物类,Dog表示狗类,是动物的子类,Cat表示猫类,是动物的子类。看下面的代码:   Animal表示动物类,Dog表示狗类,是动物的子类,Cat表示猫类,是动物的子类。看下面的代码:
  Animal a1 = new Dog();  // 1   Animal a1 = new Dog(); // 1
  Animal a2 = new Cat();   // 2   Animal a2 = new Cat(); // 2
  Dog d1 = (Dog)a1;  // 3   Dog d1 = (Dog)a1; // 3
  Dog d2 = (Dog)a2;  // 4   Dog d2 = (Dog)a2; // 4
第3行代码和第4行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗(Dog),但是第4行代码将产生java.lang.ClassCastException。 第3行代码和第4行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗(Dog),但是第4行代码将产生java.lang.ClassCastException。
ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示: 下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。 这种异常是如何产生的呢? 举一个比较形象的例子。   Animal表示动物类,Dog表示狗类,是动物的子类,Cat表示猫类,是动物的子类。看下面的代码:   Animal a1 = new Dog(); // 1   Animal a2 = new Cat(); // 2   Dog d1 = (Dog)a1; // 3   Dog d2 = (Dog)a2; // 4 第3行代码和第4行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗(Dog),但是第4行代码将产生java.lang.ClassCastException。
经验分享 程序员 微信小程序 职场和发展