我想把一个 Set<String>
变成一个 Map
. 但我不知道为什么 keyMapper
以及 valueMapper
不会取关键功能对象。
private static void populateHeader(Map<String, List<String>> headerMap,
Set<String> keys) {
headerMap= keys.stream()
.collect(Collectors.toMap(key -> key.toString(),parseLine(key -> key)));
}
错误消息是:
错误:(83,91)java:不兼容的类型:java.lang.string不是函数接口
2条答案
按热度按时间8mmmxcuj1#
不知道为什么代码最初失败这里是行的工作!对于这段代码,我为每个键获得一组键(set keys),我需要加载一个标签的字符串列表(这是parseline函数)。最后返回一个键及其标记的Map
... map>headermap=keys.stream().collect(collectors.tomap(key->key,key->parseline(getheaderline(key)))。。。
终于成功了。谢谢你,詹姆斯
az31mfrm2#
大概吧
parseLine(key -> key)
应该是key -> parseLine(key)
. 技术上parseLine
无法返回正确类型的函数对象(Function<String,String>
).错误信息会有所帮助。
你可以这样写:
值得注意的是
headerMap
是一个参数,所以赋值有点奇怪。调用函数传递的值将不受影响。