怎么解决java.lang.classcastexception?经常在做项目的时候就会报错出现java.lang.ClassCastException异常。让人很难理解。今天我就来给大家说说java.lang.ClassCastException这个错误怎么解决,以及java.lang.ClassCastException错误产生的原因。
工具/原料
java.lang.ClassCastException怎么解决
怎么解决java.lang.ClassCastException
1、首先打开我们的开发工具myeclispe,然后点击File,选择New,在点击Java Project选项来新建个java工程项目,如下图所示。
2、这里我新建了三个java类。一个是BaiDu类作为父类,一个JingYan类作为子类。还有一个AesTest类是来测试我们结果的,如下图所示。
3、在BaiDu.java父类中,就定义一个name属性。在JingYan.java类里,我们是先继承了BaiDu这个类,然后又定义了个Cname属性,如下图所示。代码如下:public class BaiDu { String name = "baidu"; }public class JingYan extends BaiDu { String Cname = "jingyan";}
4、在AesTest.java类里面写上测试代码,代码如下:public static void main(String[] args) { BaiDu baidu = new BaiDu(); JingYan jingyan = new JingYan();jingyan = (JingYan) baidu; System.out.println(jingyan); }这里注意,把定义的baidu赋值给jingyan,由于类型不一致,所以要进行类型强制转化,用JingYan这个类来进行强制转换,如下图所示。
5、写好后,就可以执行这段代码了,执行发现报错java.lang.ClassCastException。报错的意思就是强制类型转换异常。
6、接着,我们在修改下代码,代码如下:publi罕铞泱殳c static void main(String[] ar爿讥旌护gs) { BaiDu baidu = new BaiDu(); JingYan jingyan = new JingYan(); baidu = (BaiDu)jingyan; System.out.println(baidu); }这里是把jingyan赋值给baidu,由于类型不一致,所以要进行类型强制转化,用BaiDu这个类来进行强制转换,修改好后,再来执行,发现此时可以正常运行,输出想要的结果。
7、出现java.lang.ClassCastExceptio错误是指类型强制转换出错了。当我们用子类对象去强制转换父类对象就会报错,或者使用子类对象 = 父类对象,同样会抛出java.lang.ClassCastException。例如:jingyan = (JingYan) baidu;或者jingyan=baidu;都会报错。