类型转换异常
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>