ClassCastException异常的出现原因和解决方法

(4) 2024-05-17 17:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说ClassCastException异常的出现原因和解决方法,希望能够帮助你!!!。

ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行时验证。如果在此运行时验证过程中检测到不兼容,JVM就会引发ClassCastException异常。
出现这个异常的原因如下:
1.一个类是数字类,而由于误操作,错误的将数字类向数字类转换改写成了数字类向字符串类的转换,从而产生了异常。
2.大部分原因是因为强制转换或者是SQL映射时发生了这个异常。
而我遇到的问题是:

1461:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '0x4c1ae77bc2df45fb68b13fa1b4f000305209b0cb' for key 'contract_address'

是因为sql映射出现了问题:
ClassCastException异常的出现原因和解决方法_https://bianchenghao6.com/blog__第1张
ClassCastException异常的出现原因和解决方法_https://bianchenghao6.com/blog__第2张
因为sql中返回的是一个 list的实体对象,而接收的则是一个List类型的参数。
虽然查询的时候没有报错,但是后续的时候遍历查找出来的结果就出错了。只要改成如下就可以了,一个非常大意的错误
ClassCastException异常的出现原因和解决方法_https://bianchenghao6.com/blog__第3张
这样就可以了。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复