Java Lambda表達(dá)式與引用類淺析
Lambda表達(dá)式和方法引用是一對孿生兄弟
而引用類方法是Lambda支持的方法引用中的一種
引用類方法其實就是引用類的靜態(tài)方法
直接上代碼
首先 我們要創(chuàng)建一個包
包下創(chuàng)建一個接口 我這里叫subInterface
參考代碼如下
public interface subInterface {
int convelutl(String s);
}
可以看到 我們在接口中定義了一個抽象方法 這個方法 接收一個字符串類型的參數(shù) 然后返回一個數(shù)字類型的值
然后在這個包下創(chuàng)建一個測試類 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);
}
}
這里可以看到 我們在Lambda中編寫 調(diào)用了Integer類中的parseInt方法將字符串轉(zhuǎn)成了數(shù)字類型并返回
運行結(jié)果如下

但Lambda的簡化遠(yuǎn)不止如此
我們將測試類的main方法修改如下
public static void main(String[] args) {
numberFl(s -> Integer.parseInt(s));
}
首先 他就一個參數(shù) 所以 參數(shù)類型 和 參數(shù)外面的小括號可以省列 然后 他只有一行代碼 所以 return 和 方法外面的大括號可以省列
但這其實 只是 Lambda的簡化 我們類方法的引用還沒開始呢
我們可以將main方法修改如下
public static void main(String[] args) {
numberFl(Integer::parseInt);
}
因為我們 numberFl 拿到參數(shù) 其實也就是把參數(shù)給了里面的 Integer類的parseInt方法 然后返回 parseInt給出的返回值
這里 直接就接受了方法引用的推導(dǎo)即省列
numberFl的參數(shù) 全部直接給Integer類中的parseInt 然后將 parseInt的返回值返回 這一句話就都包括了
運行結(jié)果如下

我們這里 利用了 Lambda 的原則 當(dāng)Lambda被類的靜態(tài)方法引用時 則 Lambda的參數(shù)全部傳給靜態(tài)方法
到此這篇關(guān)于Java Lambda表達(dá)式與引用類淺析的文章就介紹到這了,更多相關(guān)Java Lambda表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 中多線程生產(chǎn)者消費者問題詳細(xì)介紹
這篇文章主要介紹了java 中多線程生產(chǎn)者消費者問題詳細(xì)介紹的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題
這篇文章主要介紹了解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
深入了解Spring中g(shù)etBean()的五種方式
在本文中,我們將詳細(xì)介紹從BeanFactory中獲取bean的多種方式。簡單地說,正如方法的名稱所表達(dá)的,getBean()負(fù)責(zé)從Spring?IOC容器中獲取bean實例,希望對大家有所幫助2023-02-02
springboot解決使用localhost或127.0.01模擬CORS失效
CORS允許不同源的網(wǎng)頁請求訪問另一個源服務(wù)器上的某些資源,本文主要介紹了springboot解決使用localhost或127.0.01模擬CORS失效,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07

