亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

問題描述

函數(shù)接口中有一個(gè) 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類型值做邏輯運(yùn)算可以返回一個(gè)謂詞對(duì)象???

問題解答

回答1:

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

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

返回的不是boolean, 而是(t) -> { return true|false; }, 表示返回一個(gè)functional interface, 這個(gè)functional interface是什么根據(jù)上下文確定, 只要是接受參數(shù)是1個(gè)并且返回值是bool都可以, 在Predicate中就是functional interface自己, 因?yàn)榉椒ㄒ?guī)定了返回值是Predicate.

回答3:

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

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

回答4:

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 亚洲日韩精品欧美一区二区一 | 国产一级c片 | 免费片 | 中文字幕 日韩有码 | 黄色美女毛片 | 国产精品尤物在线 | 亚洲视频天天射 | 极品蜜桃臀美女啪啪 | 欧美一级久久久久久久大 | 一级特黄色大片 | 精品亚洲成a人在线播放 | 黄色片子在线观看 | 黄页网站18以下禁止观看 | 国外成人免费视频 | 国产白拍 | 日本无翼乌邪恶彩色大全 | 欧美一级特黄特黄毛片 | 亚洲综合一区二区不卡 | 国产在线播放网址 | 国产欧美日韩另类 | 不卡的在线视频免费观看 | hh99m 福利毛片 | 性欧美一级毛片欧美片 | 国内欧美一区二区三区 | 男人免费看片 | 国产精品v一区二区三区 | www黄色网| 护士和黑人做爰 | 国产精品免费一区二区三区 | 欧美一级特黄aaaaaaa在线观看 | 亚洲国产成人精品久久 | 伊人伊狠亚洲综合影院 | 成人国产永久福利看片 | 麻豆视频网 | 欧美日韩色综合网站 | 亚洲综合自拍 | 国产在线小视频 | 亚洲一区二区三区不卡视频 | 黄色在线| 欧美国产综合视频在线观看 | 亚洲精品一区激情区偷拍 |