首页 > 解决方案 > Java 8 中是否存在将流操作值分配给局部变量的“机制”?

问题描述

我认为答案是否定的,但想检查一下是否没有优雅的解决方法。我想在 java 8 应用程序中向 JPA 标准bQuery 添加未知数量的子查询操作,并希望做这样的事情

Expression where = null;

where = criteriaBuilder.in(from.get(fieldsList.get(0)... )

fieldsList.stream().skip(1)
.forEachOrdered(i -> where = criteriaBuilder
.and(criteriaBuilder.in(from.get(i)).value(getSubquery(edmEntityType,
entityClass, criteriaBuilder, criteriaQuery, from, i)), where));

因为我引用了许多 locval 变量,所以这是不行的,我使用了 for 循环

for (int i = 1; i < fieldsList.size(); i++){
    where ... 
}

我只是想知道是否有更优雅的解决方案?

标签: java-8java-streamcriteria-api

解决方案


推荐阅读