use*_*162 4 java string enumeration casting
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
out.print(paramName);
}
Run Code Online (Sandbox Code Playgroud)
从上面的代码我不明白为什么paramNames.nextElement()需要对 String 进行类型转换。有人可以解释一下吗?当我从表单传递参数名称时,它已经在字符串中,那么我们为什么要使用(String)?
Enumeration是泛型类型,通常应与适当的泛型参数一起使用。例如sEnumeration的an String:
Enumeration<String> paramNames = ...;
Run Code Online (Sandbox Code Playgroud)
这使得该方法的签名nextElement()如下所示:
public String nextElement();
Run Code Online (Sandbox Code Playgroud)
它们转换为 a 的原因String是因为如果没有泛型参数,编译器会将其视为您键入的内容:
Enumeration<Object>
Run Code Online (Sandbox Code Playgroud)
所以 的返回类型nextElement()就变成了Object,并且你不能只将一个对象赋给String变量paramName。
当然,如果request.getParameterNames()不返回Enumeration<String>,而只是返回Enumeration,那么你就不能做得比这更好了。
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |