正在回答
同学你好。这里用到了反射,有关反射的内容在 Java反射 课程中有详细讲解。
1、Class.forName方法是根据传入的类名去获取类对应的Class对象的方法。在这里className是根据路径解析的结果,人为拼出的。我们之后定义控制器controller,就要使用这种规则去定义。这样就可以根据className找到他们了。
2、getMethod 的作用是从Class对象中找到对应的方法。getMethod方法的参数是String类型的 name以及Class类型的参数们。即getMethod方法寻找的依据就是方法名和参数的Class对象。
getMethod(methodName,HttpServletRequest.class, HttpServletResponse.class) methodName是方法名,后面的两个参数是指定方法中需要传递进去的参数对应的Class对象。由于request和response肯定能提供够我们之后Controller中的方法所需要的内容。所以之后Controller中的方法,参数都统一为(HttpServletRequest, HttpServletResponse),例如:
3、这个method.invoke可以以反射的方式调用指定的方法。后面的参数分别是这个方法所在的类的一个实例,以及这个方法所需的参数对象。这里传入的正好是Controller的实例对象,以及request、response对象。这样,就相当于调用了这个Controller中的指定方法了。
如果以上过程有些难以消化,建议再结合Java反射课程进行理解。这里本来就是难点呢~
如果解答了同学的疑问,望采纳~
祝学习愉快~
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星