Java8:为什么lambda表达式可以做一个逻辑和(或)布尔值

时间:2014-04-20 03:36:30

标签: java lambda java-8 operator-precedence

我在Predicate的andor方法中看到,返回类型是Predicate,而在return语句中,有一个lambda表达式表示逻辑,(或)表示布尔值。那么当逻辑和(或)有一个Lamdba表达式的操作数和另一个boolean操作数时,如何计算return语句。为什么这有效?

以下是and的{​​{1}}方法的代码:

java.util.function.Predicate

1 个答案:

答案 0 :(得分:10)

在此声明中:

return (t) -> test(t) && other.test(t);

&&运算符的优先级高于->运算符,因此表达式的解析方式如下:

return (t) -> (test(t) && other.test(t));

因此,这将返回lambda表达式本身,这是该谓词的test方法与其他谓词的test方法的逻辑AND。