Java Lambda表達(dá)式與引用類淺析
Lambda表達(dá)式和方法引用是一對(duì)孿生兄弟
而引用類方法是Lambda支持的方法引用中的一種
引用類方法其實(shí)就是引用類的靜態(tài)方法
直接上代碼
首先 我們要?jiǎng)?chuàng)建一個(gè)包
包下創(chuàng)建一個(gè)接口 我這里叫subInterface
參考代碼如下
public interface subInterface { int convelutl(String s); }
可以看到 我們?cè)诮涌谥卸x了一個(gè)抽象方法 這個(gè)方法 接收一個(gè)字符串類型的參數(shù) 然后返回一個(gè)數(shù)字類型的值
然后在這個(gè)包下創(chuàng)建一個(gè)測(cè)試類 text
參考代碼如下
public class text { public static void main(String[] args) { numberFl((String s)->{ return Integer.parseInt(s); }); } public static void numberFl(subInterface sub){ int min = sub.convelutl("666"); System.out.println(min); } }
這里可以看到 我們?cè)贚ambda中編寫 調(diào)用了Integer類中的parseInt方法將字符串轉(zhuǎn)成了數(shù)字類型并返回
運(yùn)行結(jié)果如下
但Lambda的簡(jiǎn)化遠(yuǎn)不止如此
我們將測(cè)試類的main方法修改如下
public static void main(String[] args) { numberFl(s -> Integer.parseInt(s)); }
首先 他就一個(gè)參數(shù) 所以 參數(shù)類型 和 參數(shù)外面的小括號(hào)可以省列 然后 他只有一行代碼 所以 return 和 方法外面的大括號(hào)可以省列
但這其實(shí) 只是 Lambda的簡(jiǎn)化 我們類方法的引用還沒(méi)開(kāi)始呢
我們可以將main方法修改如下
public static void main(String[] args) { numberFl(Integer::parseInt); }
因?yàn)槲覀?numberFl 拿到參數(shù) 其實(shí)也就是把參數(shù)給了里面的 Integer類的parseInt方法 然后返回 parseInt給出的返回值
這里 直接就接受了方法引用的推導(dǎo)即省列
numberFl的參數(shù) 全部直接給Integer類中的parseInt 然后將 parseInt的返回值返回 這一句話就都包括了
運(yùn)行結(jié)果如下
我們這里 利用了 Lambda 的原則 當(dāng)Lambda被類的靜態(tài)方法引用時(shí) 則 Lambda的參數(shù)全部傳給靜態(tài)方法
到此這篇關(guān)于Java Lambda表達(dá)式與引用類淺析的文章就介紹到這了,更多相關(guān)Java Lambda表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Character類對(duì)單個(gè)字符操作原理解析
這篇文章主要介紹了Java Character類對(duì)單個(gè)字符操作原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java servlet執(zhí)行流程代碼實(shí)例
這篇文章主要介紹了Java servlet執(zhí)行流程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02IDEA 使用mybatis插件Free Mybatis plugin的步驟(推薦)
這篇文章主要介紹了IDEA 使用mybatis插件Free Mybatis plugin的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包(問(wèn)題分析及解決方案)
這篇文章主要介紹了IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包 的解決方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式
這篇文章主要給大家介紹了SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式,文中給出了詳細(xì)的代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12一文教你學(xué)會(huì)如何使用MyBatisPlus
本篇文章,我們通過(guò) MyBatis Plus 來(lái)對(duì)一張表進(jìn)行 CRUD 操作,來(lái)看看是如何簡(jiǎn)化我們開(kāi)發(fā)的,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05IDEA中request.getParameter爆紅問(wèn)題及解決
這篇文章主要介紹了IDEA中request.getParameter爆紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Java通過(guò)PropertyDescriptor反射調(diào)用set和get方法
這篇文章主要為大家詳細(xì)介紹了Java通過(guò)PropertyDescriptor反射調(diào)用set和get方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03