- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
下面给出了 org.apache.commons.collections.map.MultiValueMap
的示例(来自 commons-collections-3.2.1)
Map<String, Object> multiValueMap = MultiValueMap.decorate(new HashMap<String, Object>());
multiValueMap.put("orderId", 1L);
for(Map.Entry<String, Object> entry : multiValueMap.entrySet()) {
List<Object> value = (List<Object>) entry.getValue();
System.out.println(entry.getKey()+" : "+value.get(0));
}
这看起来很好用。它显示一个键和与该键关联的值。
如果声明改变如下,
Map<String, Object> multiValueMap = MultiValueMap.decorate(new HashMap<String, Object>(){{
put("orderId", 1L);
}});
然后它抛出一个异常-
java.lang.ClassCastException: java.lang.Long cannot be cast to java.util.List
在唯一的 foreach
循环的第一行。
在这种情况下,给定的 MultiValueMap
并不是真正的 MultiValueMap
。它是一个普通的 HashMap
。
以这种方式更改声明有何不同?
最佳答案
MultiValueMap 是一个相当简单的 map 装饰器。它覆盖 put 方法并注入(inject)集合而不是实际值。在 gets 的情况下,它从底层映射中获取集合。
在您的第二个示例中,您正在装饰一个已填充的 map ,因此当 MultiValueMap 尝试获取您的键的集合时,它会变成一个 long:
public Collection getCollection(Object key) {
return (Collection) getMap().get(key);
}
关于java - 使用来自 Apache Commons Collections 的 MultiValueMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26215223/
嗨,我正在尝试访问 Hashmap 中的 MultiValueMap 这是我的 HashMap projectDetails HashMap private HashMap classDetailsM
我创建了一个 MultiValueMap,它有重复的键。我想知道如何获取重复键及其值的列表? key value A 4 A 6 B 7 C
我最近从 php 转向了 java,所以我的 java 技能相当低。 在我的代码中,我有一个名为 queryParams 的 MultiValueMap MultiValueMap queryPara
我正在使用 Apache Collections 中的 MultiValueMap 来收集不同类型的单词(名词、动词等),并且我想在继续之前检查是否至少拥有每种单词类型之一。 总体轮廓如下(启动按键后
在一个地方,我必须使用一个映射,其中许多值映射到一个键,所以我想知道使用 HashMap of key, list 和 之间是否有任何显着的性能差异Java 中键、值的多映射。 最佳答案 您可以尝试一
我的服务出现问题。以下是我的服务 @POST @Path("/config") @Consumes(MediaType.APPLICATION_JSON) public Response saveCo
我使用此代码从 HTTP 请求中获取值: @PostMapping(consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, value = "/
我有一个 MultiValueMap 我正试图从中获取[出于这个问题的目的而打印] 使用相同 key 放入 map 中的所有路径。 这是我目前的解决方案: MultiValueMap duplicat
我有一个 MultiMap 假设 Company 以 String 作为键,另一个 MultiMap 假设 Employee 为值。 Employee Multimap 将 String 作为键,将另
Apache Commons Collections 的 4.0 版库添加了泛型支持。我在转换我的代码以利用它时遇到问题: 我想要一个 MultiValueMap 它以字符串作为键,以字符串集合作为值
我想像这样构建一个 JSON: { "Id": "33396", "Actions": [ { "Key": "5", "Value": "Test"
我有一个问题,如何为这个 hashmap 设置值并模拟它 Map > idsrcMp = new HashMap<>(3); 最佳答案 我不确定“设置值并模拟它”是什么意思。你想设置值或模拟它吗? 您
这是我正在考虑做的事情,我想知道您是否认为这是一个好主意。 我从数据库中检索了一堆行,在 groovy 中它为我提供了一个列表列表,如下所示: [ [ 'Dog', 'M', 'Mutt', 'S
我有参数的多重映射,如下所示: { keyA: ["2+4", "4+8"], keyB: ["Some words with special chars #ąęć"] } 作为 sp
我已经在 Spring boot 中实现了 OAuth2。在 JUnit 中测试它时效果很好,但当我在 postman 中尝试该 API 时,我总是遇到未经授权的情况。 JUnit 中的测试函数: p
我需要一个 TreeMap可以容纳多个值,所以我选择了 MultiValueMap来自 Commons Collections 4.0 用HashMap很简单 private MultiValueM
下面给出了 org.apache.commons.collections.map.MultiValueMap 的示例(来自 commons-collections-3.2.1) Map multiVa
我想发送一个 POST 请求,其中包含一个文件和另一个使用 restTemplate 的自定义对象。我试过下面的代码,但没有成功,因为它缺少 java.io.File 的 HtttpMessageCo
我正在尝试将 map 转换为多值 map ,但出现以下编译异常: Wrong 1st argument type. Found: java.util.Map>, required: org.sprin
我正在使用 spring2.5。并尝试为ajax上传实现自定义CommonsMultipartResolver。 提交表单后,出现以下错误: org.springframework.web.util.
我是一名优秀的程序员,十分优秀!