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)化 我們類方法的引用還沒開始呢
我們可以將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)文章
解決Properties屬性文件中的值有等號(hào)和換行的小問題
這篇文章主要介紹了解決Properties屬性文件中的值有等號(hào)有換行的小問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)點(diǎn)擊按鈕事件彈出子窗口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
java 中多線程生產(chǎn)者消費(fèi)者問題詳細(xì)介紹
這篇文章主要介紹了java 中多線程生產(chǎn)者消費(fèi)者問題詳細(xì)介紹的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
解讀動(dòng)態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題
這篇文章主要介紹了解讀動(dòng)態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
深入了解Spring中g(shù)etBean()的五種方式
在本文中,我們將詳細(xì)介紹從BeanFactory中獲取bean的多種方式。簡(jiǎn)單地說,正如方法的名稱所表達(dá)的,getBean()負(fù)責(zé)從Spring?IOC容器中獲取bean實(shí)例,希望對(duì)大家有所幫助2023-02-02
springboot解決使用localhost或127.0.01模擬CORS失效
CORS允許不同源的網(wǎng)頁請(qǐng)求訪問另一個(gè)源服務(wù)器上的某些資源,本文主要介紹了springboot解決使用localhost或127.0.01模擬CORS失效,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07

