带有构造函数newInstance的java.lang.NoSuchMethodException
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了带有构造函数newInstance的java.lang.NoSuchMethodException,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1716字,纯文字阅读大概需要3分钟。
内容图文
![带有构造函数newInstance的java.lang.NoSuchMethodException](/upload/InfoBanner/zyjiaocheng/763/cec4dc3f74444dcd8e479c1a0299aae3.jpg)
我目前正在使用Java开发一些web开发项目,我已经实现了一个前端控制器,该工作是根据路径实例化新控制器.
那么当用户运行时?q = user / login ex.前端控制器应该实现UserController,我正在尝试使用这段代码.
String q = request.getParameter("q");
try {
String[] page = q.split("/");
// Make first char upper, to match class name conventions.
page[0] = (page[0].substring(0, 1).toUpperCase() + page[0].substring(1).toLowerCase()).trim();
Class contDes = Class.forName("dk.elvar.rocks." + page[0]+ "Controller");
Constructor co = contDes.getConstructor();
co.newInstance(request, response, page);
这导致了
java.lang.NoSuchMethodException: dk.elvar.rocks.UserController.<init>()
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at dk.elvar.rocks.FrontController.doGet(FrontController.java:35)
我试着在google上查找它,并且bug,因为在加载对象中声明构造函数,使类公开,已经存在.
UserController的:
public class UserController extends HttpServlet {
private final String USERNAME = "Martin";
private final String PASSWORD = "David";
private static final long serialVersionUID = 1L;
HttpServletRequest request;
HttpServletResponse response;
public UserController(HttpServletRequest request, HttpServletResponse response, String[] action) {
this.request = request;
this.response = response;
if(action[1].equalsIgnoreCase("login")) {
this.renderLoginAction();
}
if(action[1].equalsIgnoreCase("val-login")) {
this.validateLoginAction();
}
}
解决方法:
您可能会遇到此异常,因为该类没有默认构造函数.您可以通过将构造函数传递给getConstructor方法来获取带有参数的构造函数:
Constructor co = contDes.getConstructor(
HttpServletRequest.class,
HttpServletResponse.class,
String[].class);
co.newInstance(request, response, page);
内容总结
以上是互联网集市为您收集整理的带有构造函数newInstance的java.lang.NoSuchMethodException全部内容,希望文章能够帮你解决带有构造函数newInstance的java.lang.NoSuchMethodException所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。