可以用“括号”吗?关于谓词运算

发布于 2024-08-31 21:31:01 字数 290 浏览 7 评论 0原文

我看不到任何方法来构建使用括号来控制逻辑顺序的 guava/Java Predicate 。有吗?

假设我想做类似的事情:

Predicate <= mumble and (foo or baz)

一个简单的 Predicates.andPredicates.or 没有相当于 "foo or baz" 并带有 mumble 的内容代码>.

这可能吗?

I can't see any way to build a guava/Java Predicate that uses parenthesis to control logical order. Is there one?

Say I want to do something like:

Predicate <= mumble and (foo or baz)

A simple Predicates.and or a Predicates.or has no equivalent that says "foo or baz" and with mumble.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

像极了他 2024-09-07 21:31:01

这仅取决于您如何构造它:

// (mumble and foo) or baz
Predicates.or(Predicates.and(mumble, foo), baz)

// mumble and (foo or baz)
Predicates.and(mumble, Predicates.or(foo, baz))

实际上不需要“括号”,因为它从方法调用本身来看是明确的。

It just depends on how you construct it:

// (mumble and foo) or baz
Predicates.or(Predicates.and(mumble, foo), baz)

// mumble and (foo or baz)
Predicates.and(mumble, Predicates.or(foo, baz))

There's no real need for "parentheses" because it's unambiguous from the method calls themselves.

浮世清欢 2024-09-07 21:31:01

对于像我这样正在寻找这个,但使用 Java 8 java.util.function Predicate 代替的人:

// (mumble and foo) or baz
(mumble.and(foo)).or(baz)

// mumble and (foo or baz)
mumble.and(foo.or(baz))

其中 mumble、foo 和 baz 都是 java.util.function.Predicate 的实例

For those like me that were looking for this, but using Java 8 java.util.function Predicate instead:

// (mumble and foo) or baz
(mumble.and(foo)).or(baz)

// mumble and (foo or baz)
mumble.and(foo.or(baz))

Where mumble, foo and baz are all instances of java.util.function.Predicate

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文