给定以下函数:
public static <X> List<X> filterWithVarargPredicates(
List<X> allProducts,
Predicate<X>... predicates
) {
for (Predicate<X> predicate : predicates) {
allProducts = allProducts.stream()
.filter(predicate)
.collect(toList());
}
return allProducts;
}
有没有一种方法可以消耗所有谓词而不必通过循环并重新分配给列表?例如,如果.stream()
具有接受可变参数的过滤器,或者在单个流中以某种方式执行该操作,那将是非常好的。