好吧,我很困惑。我相信它会将指针返回到原始 map ?
private HttpServletRequest originalRequest;
Map params = originalRequest.getParameterMap();
params.remove("parameter-to-remove");
params.put("parameter-to-add", "<a value>");
现在,在这些操作之后,originalRequest 中的参数会发生变化吗?或者它只是将值复制到参数中,而我对它们做什么并不重要,并且原始请求中不会发生任何更改?
最佳答案
返回的 map 是不可变的 map ,这可能是您没有看到反射(reflect)的更改的原因。
根据 getParameterMap javadoc
an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.
如果您想设置一些请求值,您应该使用 setAttribute .
关于java - 这是返回指向值的指针还是复制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466405/