Java类型转换报错java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to

岁酱吖の 提交于 2020-02-27 01:40:17

类型转换异常

java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to
这个错误的原因只有一个类型转换异常。
在一个子类实现父类的接口时,并且在强制转换时一定要使用父类的接口,否则就会报这个错误。

接口代码

package com.xxr.mapper;

public interface UserMapper {

     void AddUser();
    void SelectUser();
    void DeleteUser();
    void UpUser();

}

子类代码

package com.xxr.mapper.Impl;

import com.xxr.mapper.UserMapper;

public class UserImpl implements UserMapper {
    public void AddUser() {
        System.out.println("增加");
    }

    public void SelectUser() {
        System.out.println("查询");
    }

    public void DeleteUser() {
        System.out.println("删除");
    }

    public void UpUser() {
        System.out.println("修改");
    }
}

测试类代码,被注释掉的为错误代码!!!

  @Test
    public void test0(){
       ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
        UserMapper userMapper = (UserMapper) context.getBean("UserImpl");
       /userMapper.AddUser();
      //  UserImpl userImpl = (UserImpl) context.getBean("UserImpl");
     //   userImpl.AddUser();
    }

XML代码

<bean id="UserImpl" class="com.xxr.mapper.Impl.UserImpl"></bean>
    <bean id="After" class="com.xxr.pojo.After"></bean>
    <bean id="Befor" class="com.xxr.pojo.Befor"></bean>

    <aop:config>
        <aop:pointcut id="UserPointCut" expression="execution(* com.xxr.mapper.Impl.UserImpl.*(..))"></aop:pointcut>
        <aop:advisor advice-ref="After" pointcut-ref="UserPointCut"></aop:advisor>
        <aop:advisor advice-ref="Befor" pointcut-ref="UserPointCut"></aop:advisor>

    </aop:config>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!