classcastexception是什么原因造成的?ClassCastException发生的原因以及解决方案
classcastexception是什么原因造成的?
ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。
通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。
不过,某些转换还需要运行时验证。如果在此运行时验证过程中检测到不兼容,JVM就会引发ClassCastException异常。
1.一个类是数字类,而由于误操作,错误的将数字类向数字类转换改写成了数字类向字符串类的转换,从而产生了异常。
2.大部分原因是因为强制转换或者是SQL映射时发生了这个异常。
是因为sql映射出现了问题:
因为sql中返回的是一个 list的实体对象,而接收的则是一个List类型的参数。
怎么解决?
首先打开我们的开发工具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;
都会报错。
相关阅读
-
02-10
-
02-10
-
02-10
-
02-10
-
02-09
推荐阅读
-
-
曹妃甸钢电园区举行招商引资动员大会
2月8日,钢电园区举行2023年招商引资动员大会。副区长马亚楠出席会议并讲话。京冀协同发展示范区管理委员会副主任李如忠出席活动并围绕京冀协更多
2023-02-10 13:56:00
-
-
天津局打出提升土地利用效率“组合拳”
日前,记者从天津市规划和自然资源局了解到,该局主动提供土地供应靠前服务,坚持挖潜盘活土地存量,加强全生命周期管地,多措并举向土地要效更多
2023-02-10 14:00:31
-
-
江永县大泊水铅锌矿分期验收报告_每日快看
【来源:江永县自然资源局】声明:转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请作者持权属证明发至邮箱newme更多
2023-02-10 13:47:05
-
-
市科学技术发展研究中心来市政府研究室座谈交流
2月10日上午,市科学技术发展研究中心一行5人来市政府研究室发展与改革研究中心座谈交流。会上双方就科创人才培养、建设科技人才高地、科技型更多
2023-02-10 13:45:48
-
-
江永县木脑山采石场矿山生态修复分期验收报告-全
【来源:江永县自然资源局】声明:转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请作者持权属证明发至邮箱newme更多
2023-02-10 13:39:28
-
-
人行呼伦贝尔市中支:提升服务质效为经济回稳注入
过去一年,人民银行呼伦贝尔市中支不断加大信贷对中小微企业等重点领域和薄弱环节的支持力度,持续提升金融服务实体经济的质效,为呼伦贝尔市更多
2023-02-10 12:58:42
-
-
全球头条:扬州20个项目列入“省重大”百亿元以上
重大项目,尤其是列省重大项目,是一个地区经济发展的强力引擎。昨天,记者从市发改委获悉,省发改委已公布2023年列省重大项目清单,今年扬州2更多
2023-02-10 12:45:16
-
-
每日焦点!总投资110亿!意向融资12亿!安庆又一
2月9日,全省一季度开工项目专题融资需求对接会召开,安庆总投资110亿元的安庆衡川年产30亿平方米锂离子电池湿法隔膜项目参加现场签约,与建设更多
2023-02-10 12:40:37
-
理财