首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java6接口MultivaluedMap有什么用?

Java6接口MultivaluedMap有什么用?
EN

Stack Overflow用户
提问于 2014-03-11 11:16:05
回答 4查看 27.9K关注 0票数 15

什么是Java 6接口MultivaluedMap

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-11 12:23:47

接口不属于"Java",这意味着接口不是核心库的一部分。它是javax.ws.rs层次结构的一部分,是贾克斯-RS规范的一部分。它由实现规范的框架(如泽西岛 )使用。每当映射不仅引用单个值,而且引用任意数量的值时,都会使用它。例如,使用的一个示例是请求头的存储,您可能希望在其中每个键添加几个值。甚至没有键,在某些情况下,与null值相比,处理空列表更容易。

以这个HTTP头为例:

接受-编码: compress;q=0.5,gzip;q=1.0

你可以通过

代码语言:javascript
复制
MultivaluedMap<String, String> map = ...
map.add("Accept-Encoding", "compress;q=0.5");
map.add("Accept-Encoding", "gzip;q=1.0");

在泽西内部。这种类型的多值存储是Java中的一个常见问题,由其他映射实现者(如番石榴 )来解决。

这基本上就是javadoc的意思:

键值对的映射。每个键可以有零或更多的值。

票数 33
EN

Stack Overflow用户

发布于 2014-03-11 11:19:25

它是键值对的映射。每个键可以有零或多个值。

代码语言:javascript
复制
public interface MultivaluedMap<K,V> extends java.util.Map<K,java.util.List<V>>
票数 1
EN

Stack Overflow用户

发布于 2014-07-22 18:35:13

MultivaluedMap的一个很好的使用是与UriInfo。如果要编写一个包含多个QueryParams的REST端点,可以使用UriInfo获取所有参数并使用getQuery()调用提取它们。例如:

代码语言:javascript
复制
public void get(@Context UriInfo ui) {
  MultivaluedMap params = ui.getRequestUri().getQuery();
  // now do what you want with your params
}

MultivaluedMap很有用,因为您可以有多个值的参数。例如,如果它是一个客户数据库,并且您希望获得多个客户,则您的地图将具有"customerID“键以及与其链接的多个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22324091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档