午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:177日期: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)文章:
主站蜘蛛池模板: 亚洲精品在线观看网站 | 亚洲天堂av在线播放 | 中文字幕の友人北条麻妃 | 国产一区99 | 亚洲成人一区二区三区 | 成人免费视频国产 | 在线观看国产黄色 | 日韩欧美国产一区二区三区 | 天天干天天爽天天操 | 在线看亚洲| 亚洲午夜免费视频 | 不卡视频一区二区 | 免费一级黄色 | 成人免费看片视频在线观看 | 手机在线精品视频 | 91久久在线观看 | 国产伦精品一区二区三区千人斩 | 成人手机看片 | 欧美午夜精品一区二区蜜桃 | 伊人黄| 久热中文字幕 | 黄色免费视频网站 | 欧美日韩一级二级 | 日本天堂在线视频 | 黑人巨大猛烈捣出白浆 | 欧美日韩午夜视频 | 小视频在线免费观看 | 国产精品久久在线 | aaa黄色大片| 欧美一及片 | 欧美日韩高清 | 永久中文字幕 | 欧美日本一区二区 | 日本不卡在线视频 | 亚洲日本中文字幕在线 | 一级免费av | 国产chinese男男网站大全 | 人人爽人人香蕉 | 欧美日韩综合一区二区三区 | 欧美特黄一级大片 | 欧美性猛交乱大交3 |