Java 如何参数化getParameterNames以避免警告
我应该如何声明上述方法的返回类型?不确定您引用的方法是什么,但要抑制该方法或语句的警告,请将以下内容放在前面:Java 如何参数化getParameterNames以避免警告,java,servlets,Java,Servlets,我应该如何声明上述方法的返回类型?不确定您引用的方法是什么,但要抑制该方法或语句的警告,请将以下内容放在前面: HttpServletRequest request; Enumeration params = request.getParameterNames(); 它必须在方法声明之前或赋值语句之前。检查(因为HttpServletRequest从其超级接口ServletRequest继承了此方法),它将告诉您此方法返回的内容:java.util.Enumeration,这意
HttpServletRequest request;
Enumeration params = request.getParameterNames();
它必须在方法声明之前或赋值语句之前。检查(因为HttpServletRequest
从其超级接口ServletRequest
继承了此方法),它将告诉您此方法返回的内容:java.util.Enumeration
,这意味着您可能希望尝试:
@SuppressWarnings("unchecked")
HttpServletRequest;
枚举参数=request.getParameterNames();
编辑1:我不知道为什么会出现第一个错误。也许您必须强制转换从方法返回的值
HttpServletRequest request;
Enumeration<String> params = request.getParameterNames();
HttpServletRequest;
枚举参数=(枚举)请求。getParameterNames();
但老实说,虽然我很擅长使用大多数API,但我不使用servlet,我希望这里的专家能提供帮助。这个方法是从(JavaEE6)开始参数化的。在(JavaEE5)和之前的旧版本中(以及许多其他版本)未参数化。您显然正在运行Servlet 2.5或更旧版本的容器。您基本上有两个选项:
HttpServletRequest request;
Enumeration<String> params = (Enumeration<String>)request.getParameterNames();
Enumeration params=request.getParameterNames();
Enumeration<String> params = request.getParameterNames();
@SuppressWarnings(“未选中”)
枚举参数=(枚举)请求。getParameterNames();
-类型安全:类型枚举的表达式需要未经检查的转换才能符合枚举-枚举是原始类型。对泛型类型枚举的引用应该参数化。上面列表中的第二个警告消失了,第一个警告仍然存在。@Jason:请参阅我上面的回答中的编辑1。如果文件是jsp怎么办文件而不是java文件?您不能在那里执行SupersWarning。@elvenbyte:java代码无论如何都不属于JSP文件。只需将其移动到java类中即可。对于一件简单的事情,有时需要做太多的工作…,我想一定有解决方案。
@SuppressWarnings("unchecked")
Enumeration<String> params = (Enumeration<String>) request.getParameterNames();