成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java8新特性lambda表達(dá)式介紹及使用

IT那活兒 / 2524人閱讀
Java8新特性lambda表達(dá)式介紹及使用

最好的總會在不經(jīng)意間出現(xiàn)。

一、介紹


  

 java8中一個(gè)非常重要的特性就是lambda表達(dá)式,我們可以把它看成是一種閉包,它允許把函數(shù)當(dāng)做參數(shù)來使用,是面向函數(shù)式編程的思想,一定程度上可以使代碼看起來更加簡潔。例如以前我們使用匿名內(nèi)部類來實(shí)現(xiàn)代碼:



使用lambda則更加簡潔:







二、lambda表達(dá)式語法


(paramters)-> expression;

或者

(paramters)-> {statements;}


lambad表達(dá)式被 箭頭操作符->分為兩大部分;

左側(cè)部分:給出lambda內(nèi)容體需要用到的所有參數(shù);

右側(cè)部分:lambda內(nèi)容體,即lambda表達(dá)式要執(zhí)行的功能;


三、lambda表達(dá)式特征


可選類型聲明:不需要聲明參數(shù)類型,編譯器可以統(tǒng)一識別參數(shù)值。

可選的參數(shù)圓括號:一個(gè)參數(shù)無需定義圓括號,但多個(gè)參數(shù)需要定義圓括號。

可選的大括號:如果主體包含了一個(gè)語句,就不需要使用大括號。

可選的返回關(guān)鍵字:如果主體只有一個(gè)表達(dá)式返回值則編譯器會自動返回值,大括號需要指定明表達(dá)式返回了一個(gè)數(shù)值。

示例:




四、使用及示例


方法引用實(shí)際上是Lambda表達(dá)式的一種語法糖。我可以將方法引用看作是一個(gè)函數(shù)指針。

方法引用有很多種,它們的語法如下:

靜態(tài)方法引用:ClassName::methodName

實(shí)例上的實(shí)例方法引用:instanceReference::methodName

超類上的實(shí)例方法引用:super::methodName

類型上的實(shí)例方法引用:ClassName::methodName

構(gòu)造方法引用:Class::new

數(shù)組構(gòu)造方法引用:TypeName[]::new

示例:

lamdba寫法:

@Test

voidtest1(){

Consumercon = x -> System.out.println(x);

}

方法引用寫法:

@Test

voidtest2(){

PrintStreamout = System.out;

Consumercon = out::println;

}


五、注意事項(xiàng)


lambda表達(dá)式的局部變量可以不用聲明為final,但是必須不可被后面的代碼修改(即隱性的具有final的語義)



在Lambda表達(dá)式當(dāng)中不允許聲明一個(gè)與局部變量同名的參數(shù)或者局部變量。





六、總結(jié)


  Java允許我們使用Lambda表達(dá)式替代傳統(tǒng)的匿名類創(chuàng)建使用方式,當(dāng)該參數(shù)接口是含有單個(gè)函數(shù)的函數(shù)式接口,我們就可以使用Lambda表達(dá)式去替代匿名類的使用方式。這就是Lambda的強(qiáng)大之處。極大縮短代碼行數(shù),同時(shí)大大提高代碼的易讀性,以上是筆者對java8新特性-Lambda表達(dá)式個(gè)人理解,歡迎大家一起共同探討。


END


努力做一個(gè)可愛的人

微信 | justdoit2019syy



文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130036.html

相關(guān)文章

  • 在Android項(xiàng)目中使用Java8

    摘要:現(xiàn)在爸爸終于讓平臺支持了,這篇文章中便來和大家聊聊如何在項(xiàng)目中配置使用。要想在項(xiàng)目中使用的新特性,需要將你的升級到及以上版本,并采用新的編譯。 轉(zhuǎn)載請注明出處:https://zhuanlan.zhihu.com/p/23279894 前言 在過去的文章中我介紹過Java8的一些新特性,包括: Java8新特性第1章(Lambda表達(dá)式) Java8新特性第2章(接口默認(rèn)方法) J...

    junnplus 評論0 收藏0
  • Java8特性第1章(Lambda達(dá)式)

    摘要:一表達(dá)式匿名內(nèi)部類最大的問題在于其冗余的語法,比如前面的中五行代碼僅有一行是在執(zhí)行任務(wù)??偨Y(jié)基于詞法作用域的理念,表達(dá)式不可以掩蓋任何其所在上下文的局部變量。 轉(zhuǎn)載請注明出處:https://zhuanlan.zhihu.com/p/20540175 在介紹Lambda表達(dá)式之前,我們先來看只有單個(gè)方法的Interface(通常我們稱之為回調(diào)接口): public interface...

    ningwang 評論0 收藏0
  • 樂字節(jié)-Java8特性之方法引用

    摘要:上一篇小樂介紹了新特性函數(shù)式接口,大家可以點(diǎn)擊回顧。中引入方法引用新特性用于簡化應(yīng)用對象方法的調(diào)用,方法引用是用來直接訪問類或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用是一種更簡潔易懂的表達(dá)式。 上一篇小樂介紹了《Java8新特性-函數(shù)式接口》,大家可以點(diǎn)擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡化應(yīng)用對象方法的調(diào)用,?方法引用是...

    Codeing_ls 評論0 收藏0
  • Java8-1-初識Lambda達(dá)式與函數(shù)式接口

    摘要:而在中,表達(dá)式是對象,它們必須依附于一類特別的對象類型函數(shù)式接口。即表達(dá)式返回的是函數(shù)式接口類型。 Java8被稱作Java史上變化最大的一個(gè)版本。其中包含很多重要的新特性,最核心的就是增加了Lambda表達(dá)式和Stream API。這兩者也可以結(jié)合在一起使用。首先來看下什么是Lambda表達(dá)式。Lambda表達(dá)式,維基百科上的解釋是一種用于表示匿名函數(shù)和閉包的運(yùn)算符,感覺看到這個(gè)解釋...

    jzman 評論0 收藏0
  • 樂字節(jié)-Java8核心特性實(shí)戰(zhàn)-接口默認(rèn)方法

    摘要:語法中接口可以包含實(shí)現(xiàn)方法,需要使用修飾,此類方法稱為默認(rèn)方法。核心特性接口默認(rèn)方法就介紹到這里了,后續(xù)小樂會繼續(xù)講述核心特性。 JAVA8已經(jīng)發(fā)布很久,是自java5(2004年發(fā)布)之后Oracle發(fā)布的最重要的一個(gè)版本。其中包括語言、編譯器、庫、工具和JVM等諸多方面的新特性,對于國內(nèi)外互聯(lián)網(wǎng)公司來說,Java8是以后技術(shù)開發(fā)的趨勢。這里主要講解在開發(fā)中幾個(gè)核心的新特性。(主要從...

    lbool 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<