Java 6 接口 MultivaluedMap 有什么用?

2022-09-03 09:51:39

Java 6 接口 MultivaluedMap 有什么用


答案 1

该接口不属于“Java”,这意味着该接口不是核心库的一部分。它是层次结构的一部分,是 JAX-RS 规范的一部分。它由实现规范的框架(如 Jersey)使用。每当地图不仅应引用单个值,而且应引用任意数量的值时,就会使用它。例如,存储请求标头,您可能希望为每个键添加多个值。或者在某些情况下甚至没有键,因为与值相比,处理空列表更容易。javax.ws.rsnull

以这个HTTP标头为例:

接受编码:压缩;q=0.5,gzip;q=1.0

您可以通过以下方式对此进行建模:

MultivaluedMap<String, String> map = ...
map.add("Accept-Encoding", "compress;q=0.5");
map.add("Accept-Encoding", "gzip;q=1.0");

在泽西岛内部。这种类型的多值存储是Java中的一个常见问题,由其他地图实现者(如Guava)解决。

这基本上就是javadoc所说的:

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


答案 2

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

public interface MultivaluedMap<K,V> extends java.util.Map<K,java.util.List<V>>

推荐