如何在 Speedment 的过滤器中使用 OR

How can I use OR in filters with Speedment

当我想过滤 Speedment 流时如何使用 OR?如何与来自纽约、新泽西或宾夕法尼亚的用户一起编写流?

users.stream()
    .filter(User.STATE.equals("NY"))
    .collect(Collectors.toList())

这会生成一个仅来自纽约的用户列表...

在这种特殊情况下,至少有两种方法: a) 使用 Predicate::or b) 使用 in 谓词

谓词::或

users.stream()
    .filter(
        User.STATE.equals("NY")
        .or(User.STATE.equals("NJ"))
        .or(User.STATE.equals("PA"))
    )
    .collect(Collectors.toList());

in() 谓词

users.stream()
    .filter(User.STATE.in("NY", "NJ", "PA"))
    .collect(Collectors.toList());

我会使用后一种解决方案,在我看来它看起来更好。