Java 8:转换地图<;字符串,列表<;字符串>&燃气轮机;映射<;字符串,字符串[]>; Map参数; Map collect=parameters.entrySet().stream() .collect(Collectors.toMap(entry->entry.getKey(),entry->entry.getValue().toArray());

Java 8:转换地图<;字符串,列表<;字符串>&燃气轮机;映射<;字符串,字符串[]>; Map参数; Map collect=parameters.entrySet().stream() .collect(Collectors.toMap(entry->entry.getKey(),entry->entry.getValue().toArray());,java,java-8,casting,hashmap,java-stream,Java,Java 8,Casting,Hashmap,Java Stream,我发现编译器错误无法解析方法“getKey()”您应该创建正确类型的数组(即字符串[]而不是对象[]): Map collect= parameters.entrySet() .stream() .collect(Collectors.toMap(Map.Entry::getKey、, entry->entry.getValue().toArray(新字符串[0]); 您应该创建正确类型的数组(即字符串[]而不是对象[]): Map collect= parameters.entrySet()

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

您应该创建正确类型的数组(即
字符串[]
而不是
对象[]
):

Map collect=
parameters.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey、,
entry->entry.getValue().toArray(新字符串[0]);

您应该创建正确类型的数组(即
字符串[]
而不是
对象[]
):

Map collect=
parameters.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey、,
entry->entry.getValue().toArray(新字符串[0]);
您必须使用:

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

.toArray(String[]::new)
因为它返回的是
对象[]
而不是
字符串[]

如评论中所述,我的解决方案可以从

开始生效。您必须使用:

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

.toArray(String[]::new)
因为它返回的是
对象[]
而不是
字符串[]

如评论中所述,我的解决方案可以从