使用 Java 8 并收到以下错误。我有一个List<Map<String, Object>>,Map<String, Object>包含ACC_NO和true或ACC_NO和false。
有这样的地图:
[{14125=false}, {1210=false}, {13118=false}, {10607=false}, {4973=false}, {12175=false}..............,
Run Code Online (Sandbox Code Playgroud)
此行有多个标记 - Lambda 表达式的签名与功能接口方法accept(Map) 的签名不匹配 - Iterable> 类型中的方法 forEach(Consumer>) 不适用于参数 (( k, v) -> {})
我需要简单地创建另一个地图来使用
// If value is false, I need to add that again
List<Map<String, Object>> excludeAccounts = new ArrayList<>();
detailsOfPans.forEach((k, v) -> {
System.out.println("Item : " + k + " Count : " + v);
Map<String, Object> myMap = new HashMap<>();
if(!v) {
excludePANs.add(myMap.put(k, v));
}
});
Run Code Online (Sandbox Code Playgroud)
您当前仅迭代外部列表,而不是迭代形成列表项的映射。为了解决这个问题,你可以使用
detailsOfPans.forEach(map -> map.forEach((k, v) -> {
// Do something with k, v
}));
Run Code Online (Sandbox Code Playgroud)