请问老师,能否举个例子说明一下哪种情况必须使用Java反射而不能使用new关键字
来源:3-1 Class类的概述和使用
慕函数8840290
2020-07-07 17:26:21
所有的问答我都看了,想请老师能不能详细举了例子,什么情况下必须使用Java反射而不能使用new关键字,还是说其实Java反射就是对new关键字的优化,并不存或者只有极少数情况下"只能用Java反射而不能使用导包+new关键字"。比如有些答案说的:(1)"有一些框架(或者说通用的代码) 我们写入一个类 框架就会自动为我们实例化对象 但是写框架的人并不知道我们会创建什么样的类 这个时候他就需要写反射机制。"那为什么写框架的人并不知道我们会创建什么类呢?毕竟使用Class.forName()时,传入的字符串不就是类名吗?除非具体的类没有导入到项目中,但是把所有的类都导入到项目中不就行了吗?
1回答
同学你好,Java反射可以在运行过程中,动态的创建对象,获取类的方法和属性。
比如说框架,在第四阶段,将会学到Spring框架,会使用spring框架完成项目。写Spring框架的人,并不知道我们完成什么项目,创建什么类。比如说我的Spring项目中要写Cat,Dog类。写Spring框架的人并不知道,所以Spring中,无法通过new关键字创建对象,需要使用反射,在运行时,动态的加载类,创建对象。
是在我们的项目中引入框架,不是将我们的代码导入到框架中。框架的底层使用Java反射机制动态加载,不需要我们手动的Class.forName()。
祝:学习愉快~
相似问题