使用 Stream API 将谓词链接成一个

Chaining predicates into one using the Stream API

我有一个谓词列表 (List<Predicate<String>>),我想使用 or 方法将其链接成一个。如何使用 Stream API 来实现?

您可以使用 reduce 将它们与 or 连接在一起,生成一个 Predicate<String>。像这样:

List<Predicate<String>> predicates = getPredicates();

Predicate<String> p = predicates.stream()
    .reduce(s -> false, Predicate::or);