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。
上一篇:
Python 安装包管理工具 pip