繁体   English   中英

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

[英]Java8: Why a lambda expression could do a logical and(or) with boolean

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

下面是java.util.function.Predicate代码and方法:

default Predicate<T> and(Predicate<? super T> other) {
    Objects.requireNonNull(other);
    return (t) -> test(t) && other.test(t);
} 

在这个声明中:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM