700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao报错问题

com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao报错问题

时间:2021-02-14 05:55:14

相关推荐

com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao报错问题

问题解答

一、问题描述二、问题解决三、附加

一、问题描述

本人在仿照手写mybatis框架时用到了动态代理如图: 测试运行时报了Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to com.chan.dao.IUserDao的错

二、问题解决

从网上查了些许资料得知:Father.class == new Father().getClass(),如果是父类指向之类则是:Father.class == new Son().getClass()我们这个动态代理的第二个参数是要求给与daoInterFaceClass这个class对象下的所有接口,而我们在外侧是:IUserDao userDao = session.getMapper(IUserDao.class),父类接口指向子类实现,导致我们daoInterFaceClass.getInterfaces()第二个参数返回的结果是接口下的所有接口,令人哭笑不得,真的是一个小坑,特此记录以下,如果我们要改,可以改成这样,传进去就直接是接口了:

当然还有很多其它的解决方式,我这只是其中一种罢了,我用你随意

三、附加

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。