为了账号安全,请及时绑定邮箱和手机立即绑定

求教大神,关于获取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不需要强制类型转换,而调用接口的方法则必须要强制类型转换才可以调用方法呢

正在回答

1 回答

因为第一种获取方法中的getBean方法并不是context中(系统中)自带的getBean方法,而是老师重写的getBean方法

  protected <T extends Object> T getBean(String beanId){

 return (T)context.getBean(beanId);

  }

这个方法的返回值是一个泛型,就是说这个方法返回的任何类型都不用类型转换。<T extends Object>表示方法反悔的是随便任何类型的数据 

1 回复 有任何疑惑可以回复我~
#1

qq_下个瞬间_03247970 提问者

非常感谢!
2017-12-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求教大神,关于获取Context

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信