求教大神,關于獲取Context
@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不需要強制類型轉換,而調用接口的方法則必須要強制類型轉換才可以調用方法呢
2017-12-08
因為第一種獲取方法中的getBean方法并不是context中(系統中)自帶的getBean方法,而是老師重寫的getBean方法
? protected <T extends Object> T getBean(String beanId){
?return (T)context.getBean(beanId);
? }
這個方法的返回值是一個泛型,就是說這個方法返回的任何類型都不用類型轉換。<T extends Object>表示方法反悔的是隨便任何類型的數據?