第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 8謂詞

Java 8謂詞

千萬里不及你 2021-05-14 14:15:01
這是一個以謂詞為參數(shù)的示例方法:void processFields(List<WebDataField> fields, Predicate<WebDataField> predicate) {    for (WebDataField webDataField : fields) {        boolean expectedCondition = predicate.test(webDataField);    }}我將上述函數(shù)稱為:processFields(fields, w -> w.getFieldName().length() > 5);另一個功能:public void doSomething(Object someObject,Predicate<T> predicateInstance){    //doSomething method's code goes here}在調(diào)用方,方法doSomething()將像這樣被調(diào)用–doSomething(someObjectInstance, Integer i-> i>10)我檢查了Java 8文檔中的String / Integer / Object等,但沒有發(fā)現(xiàn)實現(xiàn)Predicate<T>接口的這些類中的任何一個。我不知道我在Java 8教程系列中錯過了什么,但是我無法得到這種現(xiàn)象:如果目標(biāo)類型與Predicate類沒有直接關(guān)系,編譯器如何允許lambda表達(dá)式?上述兩種情況的答案是否相同?
查看完整描述

2 回答

?
狐的傳說

TA貢獻1804條經(jīng)驗 獲得超3個贊

lambda表達(dá)式的(Integer i) -> i>1值不是Integer,因此Integer不必實現(xiàn)Predicate即可將該lambda表達(dá)式傳遞給您的方法。

Integerilambda表達(dá)式的參數(shù)類型。(Integer i) -> i>1可以表示具有單個方法的任何功能接口,該方法帶有一個Integer參數(shù)并返回boolean。因此,它適合Predicate<Integer>功能接口。

您的另一個lambda表達(dá)式--w -> w.getFieldName().length() > 5接受未指定類型的參數(shù),并返回boolean。為了使其能夠通過編譯,編譯器必須推斷類型為w具有getFieldName()方法的某個類或接口,該類或接口將返回具有方法的某種類型的實例length()。當(dāng)您將lambda表達(dá)式傳遞給processFields需要a的方法時,Predicate<WebDataField>編譯器可以推斷出lambda表達(dá)式的參數(shù)類型wWebDataField。


查看完整回答
反對 回復(fù) 2021-05-19
  • 2 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號