super.getBean得到的Object对象怎么直接赋值给OneInterface呢?不强转吗?那个<T extends Object>他也没声明是OneInterface类型啊

来源:2-1 IOC及Bean容器

慕娘6527991

2018-09-20 09:20

父类中的方法<T extends Object> T getBean(String beanName), 而是super.getBean(String), 他直接就拿来用oneInterface = super.getBean(), 怎么可以把Object类型对象直接赋值给OneInterface引用呢???

写回答 关注

1回答

  • 南风过境庆余年
    2018-09-21 09:53:11
    已采纳

    我觉得这应该是因为我们在配置文件xml中对其进行了类型的说明,也就是我们的那个id进行了设置,得到的bean也就自然是我们设置的那个类型了吧。这是我瞎猜的

    慕娘6527...

    恭喜你,猜错了。如果我这样super.getBean("oneInterface").方法(),方法除了Object的方法,调不出任何其他的方法,可见,super.getBean()得到的还是Object的子类型T类型,并不是OneInterface类型,而OneInterface oi = super.getBean(),再用oi.()方法调用的就是oneInterface的方法,可见这个T是跟声明类型有关。

    2018-09-21 17:59:50

    共 1 条回复 >

Spring入门篇

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

268786 学习 · 963 问题

查看课程

相似问题