关于Bean的问题

来源:3-21 查看容器内对象

调御丈夫

2021-10-30 20:53:58


相关截图:

617d3d6d280c39aa05001000.jpg
问题描述:context.getBean(beanName) 这句代码获取的是object Bean对象,该句代码的具体类型不能确定,怎么能用getclass()来直接获取对象的具体类型了?
我记得getClass ()是反射方法!?,它获取类型的具体实现是怎样的?

谢谢老师。

写回答

1回答

好帮手慕小小

2021-10-31

同学你好,是在程序运行时通过反射机制来获取并确定对象类型的。

context.getBean(beanName)返回的是Object的对象,getClass()是Object中的方法,用于获取对象的运行时类,即该类对应的Class类型的对象。

https://img.mukewang.com/climg/617e0ff0097fa3e713380842.jpg

context.getBean(beanName).getClass().getName():getClass()方法获取到当前类的Class类对象,再通过类Class类型对象的getName()方法获取到当前类的完整的名称。

https://img.mukewang.com/climg/617e127109b285ad13370110.jpg

反射回顾:

Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。

Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法等。

反射章节课程:https://class.imooc.com/course/2086

api官方文档:https://docs.oracle.com/javase/8/docs/api/index.html

api中文文档:https://www.matools.com/api/java8

反射章节文档:http://file1.mukewang.com/view/dbbce756b0c65ecb70d9b7c5c62610da/f474e63f80a39975e80b375e61257dcd.html?auth_key=1635738809-bwMU-0-968ad0a7be4bfeff637264d118482c83

另外建议同学可将提问部分代码的完整截图上传至问答区。

祝学习愉快~

2

0 学习 · 9886 问题

查看课程