【讨论】反射获取带参方法传参的问题

反射获取方法传参的形式只能是【类名.class】的形式吗?

测试【类名.class】和【类实例.getClass()】等价的啊

reflection·java
114 views
Comments
登录后评论
Sign In
·

还有一种办法,可以通过Class.forName("java.lang.String"); 来获取String类的Class对象,会执行String类的静态代码块(没有就算了)

这三种方法大致等效的,抛出异常和使用便捷度等方面推荐是.class,所以这种方法最常见,我给你提供的以及getClass方法都被人嫌麻烦

·

这里

request.getClass() != HttpServletReuest.class

这里的 request 对象是 web 容器实现的一个类的实例,它实现了 HttpServletReuest 接口,从截图里看 .getClass() 得到的应该是 RequestFacade 类。

Servlet 方法的参数是 HttpServletReuest requestHttpServletResponse respose,所以运行就报 NoSuchMethodException 的异常了。