Java Stream().filter() 无法找到带有lambda表达式的局部变量

问题描述 投票:0回答:1

我想获取所有仓库中特定产品的数量。仓库包含产品列表。 .filter 找到局部变量“p”(https://i.stack.imgur.com/ml1zC.png)

我使用 .map 获取产品列表流 .flatmap 获取产品流和 .filter 将每个产品“p”与函数的参数进行比较

public long getQuantityOfProduct(Product product) {
        return warehouses.stream()
            .map(Warehouse::getProducts)
            .flatMap(Collection::stream)
            .filter(p -> p.equals(product))
            .count();
    }
java intellij-idea lambda java-stream
1个回答
0
投票

您需要在 lambda 表达式内部设置断点,否则变量将是未定义的。检查 Breakpoints 指南,它解释了如何仅在调用 lambda 时设置断点。

如果该行包含 lambda 表达式,您可以选择是否要设置常规行断点,或者仅在调用 lambda 时暂停程序。

© www.soinside.com 2019 - 2024. All rights reserved.