繁体   English   中英

Java 8:转换Map <string, list<string> &gt; 至 Map<string, string[]> [复制] </string,></string,>

[英]Java 8: Converting Map<String, List<String>> to Map<String, String[]> [duplicate]

Map<String, List<String>> parameters;

Map<String, String[]> collect = parameters.entrySet().stream()
                .collect(Collectors.toMap(entry-> entry.getKey(),entry -> entry.getValue().toArray()));

我收到编译器错误无法解析方法“getKey()”

您应该创建一个正确类型的数组(即String[]而不是Object[] ):

Map<String, String[]> collect = 
    parameters.entrySet()
              .stream()
              .collect(Collectors.toMap(Map.Entry::getKey,
                                        entry -> entry.getValue().toArray(new String[0])));

你必须使用:

.toArray(String[]::new)

而不仅仅是:

.toArray()

因为这个返回Object[]而不是String[]

正如评论中所讨论的,我的解决方案可以从Java11 开始有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM