java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at java.lang.It

版权声明:http://www.lskyf.com https://blog.csdn.net/u013042707/article/details/86537994
  • 错误信息:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

    at java.lang.Iterable.forEach(Iterable.java:75)
    at org.springframework.http.converter.FormHttpMessageConverter.lambda$serializeForm$2(FormHttpMessageConverter.java:331)

  • 查看FormHttpMessageConverter.java源码
protected String serializeForm(MultiValueMap<String, String> formData, Charset charset) {
        StringBuilder builder = new StringBuilder();
        formData.forEach((name, values) ->
                values.forEach(value -> {
                    try {
                        if (builder.length() != 0) {
                            builder.append('&');
                        }
                        builder.append(URLEncoder.encode(name, charset.name()));
                        if (value != null) {
                            builder.append('=');
                            builder.append(URLEncoder.encode(value, charset.name()));
                        }
                    }
                    catch (UnsupportedEncodingException ex) {
                        throw new IllegalStateException(ex);
                    }
                }));

        return builder.toString();
    }

可以看出MultiValueMap<String, String>的key和value都是String的

  • 结论

使用MultiValueMap传参的时候需要保证key和value都是String类型的

作者:猿份哥 

原文链接:http://www.lskyf.com/view/36
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/u013042707/article/details/86537994