HttpServletRequest request;
Enumeration params = request.getParameterNames();
Run Code Online (Sandbox Code Playgroud)
我应该如何声明上述方法的返回类型?
自Servlet API 3.0(Java EE 6)以来,该方法已参数化.在旧版本中,如Servlet API 2.5(Java EE 5),在此方法(以及许多其他方法)之前未参数化.你显然正在运行一个或更旧的Servlet 2.5容器.你基本上有两个选择:
升级到Servlet 3.0容器(Tomcat 7,Glassfish 3,JBoss AS 6等),这样你就可以做到
Enumeration<String> params = request.getParameterNames();
Run Code Online (Sandbox Code Playgroud)做一个未经检查的演员.
@SuppressWarnings("unchecked")
Enumeration<String> params = (Enumeration<String>) request.getParameterNames();
Run Code Online (Sandbox Code Playgroud)查看ServletRequest API(因为HttpServletRequest从其超级接口继承了此方法ServletRequest),它会告诉您此方法返回什么:java.util.Enumeration<java.lang.String>,这意味着您可能希望尝试:
HttpServletRequest request;
Enumeration<String> params = request.getParameterNames();
Run Code Online (Sandbox Code Playgroud)
编辑 1:
我不知道为什么你会收到第一个错误。也许您必须转换从方法返回的值?
HttpServletRequest request;
Enumeration<String> params = (Enumeration<String>)request.getParameterNames();
Run Code Online (Sandbox Code Playgroud)
但说实话,虽然我非常擅长使用大多数 API,但我不做 servlet,并且非常感谢这里专家的帮助。
| 归档时间: |
|
| 查看次数: |
9227 次 |
| 最近记录: |