求教大神,關(guān)于獲取Context
@Test
//這個(gè)是我調(diào)用Test父類獲取context
public void textMoocBeanName() {
//System.out.println("textMoocBeanName : " + super.getBean("moocBeanName").hashCode());
MoocBeanName bean = super.getBean("moocBeanName");
}
//這個(gè)是我通過接口調(diào)用獲取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的時(shí)候有一個(gè)問題,就是為什么在測試類獲取的Context不需要強(qiáng)制類型轉(zhuǎn)換,而調(diào)用接口的方法則必須要強(qiáng)制類型轉(zhuǎn)換才可以調(diào)用方法呢
2017-12-08
因?yàn)榈谝环N獲取方法中的getBean方法并不是context中(系統(tǒng)中)自帶的getBean方法,而是老師重寫的getBean方法
? protected <T extends Object> T getBean(String beanId){
?return (T)context.getBean(beanId);
? }
這個(gè)方法的返回值是一個(gè)泛型,就是說這個(gè)方法返回的任何類型都不用類型轉(zhuǎn)換。<T extends Object>表示方法反悔的是隨便任何類型的數(shù)據(jù)?