qq_下个瞬间_03247970
2017-12-07 23:10
@Test
//这个是我调用Test父类获取context
public void textMoocBeanName() {
//System.out.println("textMoocBeanName : " + super.getBean("moocBeanName").hashCode());
MoocBeanName bean = super.getBean("moocBeanName");
}
//这个是我通过接口调用获取context
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
System.out.println("setApplicationContext : " + applicationContext.getBean(this.beanName).hashCode());
MoocBeanName bean = (MoocBeanName) applicationContext.getBean(this.beanName);
bean.aa();
}
//我在以上两种方式获取Context的时候有一个问题,就是为什么在测试类获取的Context不需要强制类型转换,而调用接口的方法则必须要强制类型转换才可以调用方法呢
因为第一种获取方法中的getBean方法并不是context中(系统中)自带的getBean方法,而是老师重写的getBean方法
protected <T extends Object> T getBean(String beanId){
return (T)context.getBean(beanId);
}
这个方法的返回值是一个泛型,就是说这个方法返回的任何类型都不用类型转换。<T extends Object>表示方法反悔的是随便任何类型的数据
Spring入门篇
268787 学习 · 963 问题
相似问题