Iterable<Map<String,Object>> 类型中的 forEach(Consumer<? super Map<String,Object>>) 方法不适用于参数 ((<no type> k

Jef*_*ook 4 java-8

使用 Java 8 并收到以下错误。我有一个List<Map<String, Object>>,Map<String, Object>包含ACC_NOtrueACC_NOfalse

有这样的地图:

[{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)

Red*_*III 6

您当前仅迭代外部列表,而不是迭代形成列表项的映射。为了解决这个问题,你可以使用

detailsOfPans.forEach(map -> map.forEach((k, v) -> {
    // Do something with k, v
}));
Run Code Online (Sandbox Code Playgroud)