Map<String, List<String>> parameters;
Map<String, String[]> collect = parameters.entrySet().stream()
.collect(Collectors.toMap(entry-> entry.getKey(),entry -> entry.getValue().toArray()));
我遇到编译器错误,无法解析方法'getKey()'
答案 0 :(得分:2)
您应该创建正确类型的数组(即String[]
而不是Object[]
):
Map<String, String[]> collect =
parameters.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> entry.getValue().toArray(new String[0])));
答案 1 :(得分:2)
您必须使用:
.toArray(String[]::new)
不仅仅是:
.toArray()
因为这一次返回Object[]
而不是String[]
如评论中所述,我的解决方案可以从Java11
开始有效