2010-05-10 6 views
0

Я не вижу способа построить предикат, который использует скобки для управления логическим порядком. Есть ли это?Можете ли вы использовать «скобки» для операций с предикатами

Скажите, что я хочу сделать что-то вроде Predicate < = бормотание и (Foo или БАЗ)

Простой Predicates.and или Predicates.or не имеет эквивалента, который говорит «Foo или Баз» и с бормотанием.

Возможно ли это?

ответ

6

Это просто зависит от того, как вы строите его:

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

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

Там нет необходимости в «скобки», потому что это однозначная от метода себя называет.

+0

Спасибо, Predicates.and (mumble, Predicates.of (foo, baz)) - это то, что я хочу. – fishtoprecords

+3

Чтобы помочь будущим читателям, примите этот ответ, щелкнув полый флажок слева. Таким образом, будущие читатели с первого взгляда знают, что этот ответ помог вам. – Wesley

+0

В последнем утверждении есть опечатка. Должно быть 'или' вместо' of'. – whiskeysierra