java.lang.ClassCastException: com.sun.proxy.$Proxy4 cannot be cast to java.sql.Connection错误

自己做的连接数据库池,使用代理,代理Connection的close()方法出现的错误,求解答... 自己做的连接数据库池,使用代理,代理Connection的close()方法出现的错误,求解答 展开
 我来答
bingocoiner
2016-11-08
知道答主
回答量:9
采纳率:0%
帮助的人:1.9万
展开全部
Connection.getInterfaces() 与数据库驱动有关,数据库驱动不同 Connection.getInterfaces() 的结果也就不同,Connection.getInterfaces() 返回的是 Class[] 数组,此数组的第一个元素必须是Connection才能把创建的代理类转为Connection对象,否则就会报:Java.lang.ClassCastException。因为Connection本身就是一个接口,它的字节码符合第二个参数要求,把conn.getClass().getInterfaces();改成new Class[]{Connection.class}就可以了。
问道菲菲
2014-06-29 · TA获得超过133个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:103万
展开全部

你这个是类转换错误,就是说,

com.sun.proxy.$Proxy4 不能转换为 java.sql.Connection 

原因是:

  • java 中两个类类型要想相互转换,只能向上转(子类可以转为父类类型),但是不能向下转

  • 两个不是同一个继承树上的类型不能转换

解决方法:

  • 你要确定是否 类:$Proxy4 和 Connection 是同一类型,

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式