[英]Java8: Why a lambda expression could do a logical and(or) with boolean
我看到and
和or
谓词的方法,所述返回类型是谓词,而在返回语句,有一个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.