gpt4 book ai didi

java - Request.getParameterMap 值不可转换为字符串

转载 作者:行者123 更新时间:2023-12-02 11:17:34 25 4
gpt4 key购买 nike

我正在尝试从请求对象获取完整的参数映射并对其进行迭代。

这里是示例代码

  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

从输出中可以明显看出该值对象是 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);
}

它不打印任何内容,但根据之前的输出,它应该打印这些值,如果我删除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));
}

关于java - Request.getParameterMap 值不可转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com