我正在尝试从字符串列表中进行过滤,并将结果与通过测试的字符串和一般原因一起加载到Map<String,String>
中。
这就是我要尝试的原因:
Map<String,String> invalidStrings = null;
invalidStrings = src.getAllSubjects()
.stream()
.filter(name -> !(name.contains("-value") || name.contains("-key")))
.collect(Collectors.toMap(Function.identity(), "Some Reason"));
这就是我得到的:
Collectors类型的toMap(Function,Function)方法不适用于参数 (函数,字符串)
不知道为什么我不能做到这一点...在我搜索的所有地方,建议基本上和我所做的一样。
答案 0 :(得分:3)
这是错误的重要部分:
toMap(Function,Function)的方法 <---注意
Function, Function
这意味着toMap
期望第一个参数是您通过Function.identity()
即v -> v
正确完成的函数,但您传递的第二个值是{{1 }}
相反,值映射器必须是一个函数:
String
注意 .collect(Collectors.toMap(Function.identity(), v -> "Some Reason"));
;