我在Predicate的and
和or
方法中看到,返回类型是Predicate,而在return语句中,有一个lambda表达式表示逻辑,(或)表示布尔值。那么当逻辑和(或)有一个Lamdba表达式的操作数和另一个boolean操作数时,如何计算return语句。为什么这有效?
以下是and
的{{1}}方法的代码:
java.util.function.Predicate
答案 0 :(得分:10)
在此声明中:
return (t) -> test(t) && other.test(t);
&&
运算符的优先级高于->
运算符,因此表达式的解析方式如下:
return (t) -> (test(t) && other.test(t));
因此,这将返回lambda表达式本身,这是该谓词的test
方法与其他谓词的test
方法的逻辑AND。