Java反射机制,就是指在运行状态中,对于任意一个类,你能获得这个类里面的所有方法和属性,对于任意一个对象,你都能调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能成为java语言的反射机制。
比如在Struts2的框架中就有使用
来看一个struts.xml的配置文件
<action name=“product-save” class=“com.atguigu.struts2.helloworld.Product” method="save">
<result name="details">/WER-INF/pages/details.jsp</result>
</action>
将/product-save.action的请求映射到 Product类中去处理,并且去调用save方法去处理,这显然用到了反射。
Class<?> clazz = class.forName("com.atguigu.struts2.helloworld.Product");
Method method = clazz.getMethod("save");
method.invoke(clazz.newInstance());
这样才能通过配置调用相应的类和方法
还有在spring框架里面也到处用到了反射,有兴趣可以去了解一下。
还有些时候crud一些操作都是一样的,可以用反射写一个通用dao,之后通过继承来省去一些重复的操作