java.lang.classcastexception怎么解决
来源:网络收集 点击: 时间:2024-05-05首先打开我们的开发工具myeclispe,然后点击File,选择New,在点击Java Project选项来新建个java工程项目,如下图所示。

这里我新建了三个java类。一个是BaiDu类作为父类,一个JingYan类作为子类。还有一个AesTest类是来测试我们结果的,如下图所示。

在BaiDu.java父类中,就定义一个name属性。在JingYan.java类里,我们是先继承了BaiDu这个类,然后又定义了个Cname属性,如下图所示。
代码如下:
public class BaiDu {
String name = baidu;
}
public class JingYan extends BaiDu {
String Cname = jingyan;
}


在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这个类来进行强制转换,如下图所示。

写好后,就可以执行这段代码了,执行发现报错java.lang.ClassCastException。报错的意思就是强制类型转换异常。

接着,我们在修改下代码,代码如下:
public static void main(String args) {
BaiDu baidu = new BaiDu();
JingYan jingyan = new JingYan();
baidu = (BaiDu)jingyan;
System.out.println(baidu);
}
这里是把jingyan赋值给baidu,由于类型不一致,所以要进行类型强制转化,用BaiDu这个类来进行强制转换,修改好后,再来执行,发现此时可以正常运行,输出想要的结果。

出现java.lang.ClassCastExceptio错误是指类型强制转换出错了。当我们用子类对象去强制转换父类对象就会报错,或者使用子类对象 = 父类对象,同样会抛出java.lang.ClassCastException。
例如:jingyan = (JingYan) baidu;或者jingyan=baidu;
都会报错。

本人的经验是实实在在的经历实践过的。如有帮助到您请给我投上一票或分享给有需要的朋友。如果和你操作的不一样请注意看本验的细节部分是不是和你的一样。如果您有不同看法意见的请留言本人非常乐意与您交流
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_678544.html