我想从请求对象中获取完整的参数映射并遍历它。Request.getParameterMap值不能转换为字符串
这里是示例代码
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);
}
输出
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
其明显从输出该值对象是字符串的一个实例
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);
}
它不执行任何打印但作为根据之前的输出,它应该已经打印出了这些值,如果我删除了instanceOf,请检查它是否给出ClassCastException异常。这是预期的行为还是我在这里做错了什么?
三种可能性:以该数组转换为可打印字符串
Arrays.toString()
方法1.你重新声明类'String'地方(建议使用'java.lang.String',而不是'String'找到出来)? 2.运行两段代码时,你使用的是完全相同的值吗? 3.尝试使用'String.valueOf(value)'或'value.toString()'看看会发生什么。希望能帮助到你。 –啊,忘了上面的,这是一个数组。骗了我。 –