程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java8:为什么 lambda 表达式可以用布尔值进行逻辑和(或)运算

发布于2021-06-28 06:52     阅读(1128)     评论(0)     点赞(3)     收藏(4)


我在Predicateandormethod 中看到,返回类型是 Predicate,而在 return 语句中,有一个 lambda 表达式执行逻辑和(或)与布尔值。那么当逻辑和(或)具有一个 Lamdba 表达式操作数和另一个布尔操作数时,如何评估 return 语句。为什么这是有效的?

以下是and方法的代码java.util.function.Predicate

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



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/234868/01d24ae1c089a8ea5627/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)