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映射出现了问题:

因为sql中返回的是一个 list的实体对象,而接收的则是一个list类型的参数。
虽然查询的时候没有报错,但是后续的时候遍历查找出来的结果就出错了。只要改成如下就可以了,一个非常大意的错误!

这样就可以了。

到此这篇关于java classcastexception异常解决方案的文章就介绍到这了,更多相关java classcastexception异常内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!