dps*_*dce 2 java servlets java-ee
我试图从请求对象获取完整的参数映射并迭代它.
这是示例代码
Map map = request.getParameterMap();
for(Object key : map.keySet()){
String keyStr = (String)key;
Object value = map.get(keyStr);
System.out.println("Key " + (String)key + " : " + value);
}
Run Code Online (Sandbox Code Playgroud)
产量
Key businessunit : [Ljava.lang.String;@388f8321
Key site : [Ljava.lang.String;@55ea0889
Key startDate : [Ljava.lang.String;@77d6866f
Key submit : [Ljava.lang.String;@25141ee0
Key traffictype : [Ljava.lang.String;@4bf71724
Run Code Online (Sandbox Code Playgroud)
从输出中可以看出,value对象是String的一个实例
now when i change my code to something like this
Map map = request.getParameterMap();
for(Object key : map.keySet()){
String keyStr = (String)key;
Object value = map.get(keyStr);
if(value instanceof String)
System.out.println("Key " + (String)key + " : " + (String)value);
}
Run Code Online (Sandbox Code Playgroud)
它没有打印,但根据以前的输出它应该打印值,如果我删除instanceOf检查它给出ClassCastException.这是预期的行为还是我在这里做错了什么?
由于返回的对象是Harry Joy指出的字符串数组,您必须使用该Arrays.toString()方法才能将该数组转换为可打印的字符串:
Map map = request.getParameterMap();
for (Object key: map.keySet())
{
String keyStr = (String)key;
String[] value = (String[])map.get(keyStr);
System.out.println("Key" + (String)key + " : " + Arrays.toString(value));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23115 次 |
| 最近记录: |