HttpServletRequest request;
Enumeration params = request.getParameterNames();
我应该如何声明上述方法的返回类型?
答案 0 :(得分:8)
此方法自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();
进行未经检查的演员。
@SuppressWarnings("unchecked")
Enumeration<String> params = (Enumeration<String>) request.getParameterNames();
答案 1 :(得分:4)
查看ServletRequest API(因为HttpServletRequest
从其超级界面ServletRequest
继承此方法,它会告诉您此方法返回的内容:java.util.Enumeration<java.lang.String>
,这意味着你不妨试试:
HttpServletRequest request;
Enumeration<String> params = request.getParameterNames();
编辑1:
我不确定你为什么会收到第一个错误。也许您必须强制转换从方法返回的值?
HttpServletRequest request;
Enumeration<String> params = (Enumeration<String>)request.getParameterNames();
但说实话,虽然我非常擅长浏览大多数API,但我不做servlet,并希望得到专家的帮助。
答案 2 :(得分:0)
不确定您引用了哪种方法,但是要禁止该方法或语句的警告将其置于其前面:
@SuppressWarnings("unchecked")
必须在方法声明之前或在赋值语句之前。