国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - JDK8 謂詞函數接口(Predicate)源碼疑問?

瀏覽:99日期:2023-10-26 17:28:55

問題描述

函數接口中有一個 and() 方法,源碼如下

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

另外,test()源碼如下

boolean test(T t);

疑問就是為什么 &&與boolean類型值做邏輯運算可以返回一個謂詞對象???

問題解答

回答1:

我不知道什么叫謂詞對象,但 test(t) && other.test(t) 這就是一個普通的 boolean 表達式,返回的就是一個 boolean 的值,不是什么 “謂詞對象”。整條 return 語句實際上是下面語句的簡寫:

return (t) -> { return test(t) && other.test(t);};回答2:

返回的不是boolean, 而是(t) -> { return true|false; }, 表示返回一個functional interface, 這個functional interface是什么根據上下文確定, 只要是接受參數是1個并且返回值是bool都可以, 在Predicate中就是functional interface自己, 因為方法規定了返回值是Predicate.

回答3:

@捏造的信仰 和 @YaTou 都說了,返回的是一個 Lambda,符合 Predicate<T> 的定義。

我只想說,Predicate 為什么會翻譯成“謂詞”,雖然它有“謂語”這個意思,但是在這里用的是它的另一個意思“斷言,斷定(自然語言中用斷定比較好懂,但開發技術書一般稱為斷言)”,用于判斷某個東西,得到 true 或 false 的結果——也就是斷定為真,或斷定為假

回答4:

確實源碼是沒有問題的,是我自己現在入為主了,將 (t) -> test(t)當做一個整體了,其實應該 test(t) && other.test(t)是一個整體,謝謝 @捏造的信仰 和 @YaTou 的回答以及邊城大大的提醒

標簽: java
相關文章:
主站蜘蛛池模板: 久久三级毛片 | 国产精品女在线观看 | 欧美黄网站免费观看 | 精品久久久久久久久中文字幕 | xxx欧美老熟 | 亚洲精品国产综合99久久一区 | 午夜国产精品久久久久 | 日韩在线看片中文字幕不卡 | 久草在线网址 | 日韩永久在线观看免费视频 | 一个人看的www日本视频 | 国产一区曰韩二区欧美三区 | 亚洲精品久久久久久久久久久网站 | 欧美高清一级啪啪毛片 | 日韩视频中文字幕 | 国产高清视频免费在线观看 | 欧美色操 | 最新中文字幕一区二区乱码 | 白云精品视频国产专区 | 亚洲成人第一页 | 泰国一级毛片aaa下面毛多 | 99国内精品 | 久热国产在线视频 | 国产系列 视频二区 | 日本xxxxx久色视频在线观看 | 玖玖玖视频在线观看视频6 玖玖影院在线观看 | 欧美成人观看 | 欧美做爰xxxⅹ性欧 欧美做爰免费大片在线观看 | 亚洲 欧美 日韩 在线 中文字幕 | 91精品欧美一区二区综合在线 | 牛牛本精品99久久精品88m | 香港a毛片免费全部播放 | 国产一区二区三区免费观看 | 和老外3p爽粗大免费视频 | 精品国产一区二区三区久 | 免费在线国产视频 | 欧美综合自拍亚洲综合 | 亚洲va老文色欧美黄大片人人 | 中文字幕乱码中文乱码51精品 | 国产三区视频在线观看 | 99爱在线精品视频网站 |