1.首先需要知道一点,Class这个类才是反射的源头
正常方式:通过完整的类名—>通过new实例化—>取得实例化对象
反射方式:实例化对象—>getClass()方法—>通过完整的类名
2.反射的三种方式
参考:https://zhidao.baidu.com/question/808071433707589172.html
但是需要明白一点的就是:Class.forName("");是最常用的方式。
3.Class.forName的具体用法:
参考:https://www.cnblogs.com/xdot/p/5154840.html
其中收益最大的几句话:
bean.xml
<bean id="id" class="com.xy.Student" />
Spring将采用的代码创建代码Java实例
Class c = Class.forName("com.xy.Student");
Object bean = c.newInstance();
bean.xml
<bean id="id" class="com.xy.Student">
<property name="stuName" value="xy" />
</bean>
Spring将采用的代码创建代码Java实例,并注入值:
Class c = Class.forName("com.xy.Student");
Object bean = c.newInstance();
这就把bean.xml与java代码串通了