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

資訊專欄INFORMATION COLUMN

Lambda省略格式&Lambda使用前

20171112 / 1328人閱讀

摘要:例如上例還可以使用的省略寫法省略規(guī)則在標(biāo)準(zhǔn)格式的基礎(chǔ)上,使用省略寫法的規(guī)則為小括號(hào)內(nèi)參數(shù)的類型可以省略如果小括號(hào)內(nèi)有且僅有一個(gè)參,則小括號(hào)可以省略如果大括號(hào)內(nèi)有且僅有一個(gè)語句,則無論是否有返回值,都可以省略大括號(hào)關(guān)鍵字及語句分號(hào)。

package com.itheima.demo07.Lambda;

import java.util.ArrayList;

/*

Lambda表達(dá)式:是可推導(dǎo),可以省略
凡是根據(jù)上下文推導(dǎo)出來的內(nèi)容,都可以省略書寫
可以省略的內(nèi)容:
    1.(參數(shù)列表):括號(hào)中參數(shù)列表的數(shù)據(jù)類型,可以省略不寫
    2.(參數(shù)列表):括號(hào)中的參數(shù)如果只有一個(gè),那么類型和()都可以省略
    3.{一些代碼}:如果{}中的代碼只有一行,無論是否有返回值,都可以省略({},return,分號(hào))
        注意:要省略{},return,分號(hào)必須一起省略

*/
public class Demo01ArrayList {

public static void main(String[] args) {
    //JDK1.7版本之前,創(chuàng)建集合對(duì)象必須把前后的泛型都寫上
    ArrayList list01 = new ArrayList();

    //JDK1.7版本之后,=號(hào)后邊的泛型可以省略,后邊的泛型可以根據(jù)前邊的泛型推導(dǎo)出來
    ArrayList list02 = new ArrayList<>();
}

}

3.10 Lambda省略格式 可推導(dǎo)即可省略

Lambda強(qiáng)調(diào)的是“做什么”而不是“怎么做”,所以凡是可以根據(jù)上下文推導(dǎo)得知的信息,都可以省略。例如上例還可以使用Lambda的省略寫法:

public static void main(String[] args) {
      invokeCalc(120, 130, (a, b) -> a + b);
}
省略規(guī)則

在Lambda標(biāo)準(zhǔn)格式的基礎(chǔ)上,使用省略寫法的規(guī)則為:

小括號(hào)內(nèi)參數(shù)的類型可以省略;

如果小括號(hào)內(nèi)有且僅有一個(gè)參,則小括號(hào)可以省略;

如果大括號(hào)內(nèi)有且僅有一個(gè)語句,則無論是否有返回值,都可以省略大括號(hào)、return關(guān)鍵字及語句分號(hào)。

備注:掌握這些省略規(guī)則后,請(qǐng)對(duì)應(yīng)地回顧本章開頭的多線程案例。
3.11 練習(xí):使用Lambda省略格式 題目

仍然使用前文含有唯一makeFood抽象方法的廚子Cook接口,在下面的代碼中,請(qǐng)使用Lambda的省略格式調(diào)用invokeCook方法,打印輸出“吃飯啦!”字樣:

public class Demo09InvokeCook {
    public static void main(String[] args) {
        // TODO 請(qǐng)?jiān)诖耸褂肔ambda【省略格式】調(diào)用invokeCook方法
    }

    private static void invokeCook(Cook cook) {
        cook.makeFood();
    }
}
解答
public static void main(String[] args) {
      invokeCook(() -> System.out.println("吃飯啦!"));
}
3.12 Lambda的使用前提

Lambda的語法非常簡潔,完全沒有面向?qū)ο髲?fù)雜的束縛。但是使用時(shí)有幾個(gè)問題需要特別注意:

使用Lambda必須具有接口,且要求接口中有且僅有一個(gè)抽象方法。
無論是JDK內(nèi)置的RunnableComparator接口還是自定義的接口,只有當(dāng)接口中的抽象方法存在且唯一時(shí),才可以使用Lambda。

使用Lambda必須具有上下文推斷。
也就是方法的參數(shù)或局部變量類型必須為Lambda對(duì)應(yīng)的接口類型,才能使用Lambda作為該接口的實(shí)例。

備注:有且僅有一個(gè)抽象方法的接口,稱為“函數(shù)式接口”。

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

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

相關(guān)文章

  • python高階函數(shù)使用方法實(shí)例

      本文關(guān)鍵給大家介紹了python高階函數(shù)使用方法實(shí)例詳細(xì)說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪  一、高階函數(shù)  函數(shù)定義  python中,函數(shù)名是自變量,下邊這一method函數(shù)名當(dāng)做自變量,偏向1個(gè)計(jì)算出來的函數(shù)公式!因而函數(shù)名本身就是偏向函數(shù)的自變量,故自變量可偏向函數(shù)公式;  自變量可偏向函數(shù)公式,且函數(shù)的自變量可以接受自變量,那樣任...

    89542767 評(píng)論0 收藏0
  • 教你用python從日期中獲取年、月、日和星期等30種信息

      Python的作用還是比較的廣泛的,在日常生活中,應(yīng)用范圍也比較的廣泛,比如,我們可以去利用python,以此來獲取年月日等相關(guān)的一些信息,具體的內(nèi)容是什么呢?下面就給大家詳細(xì)的解答下?! ∵@次介紹日期數(shù)據(jù)處理?! ∮胮ython中的方法對(duì)日期數(shù)據(jù)進(jìn)行處理,我們可以獲取很多有用的信息,比如年月日,星期,周次,季度等,這里分享工作和數(shù)據(jù)競賽30余種常用的轉(zhuǎn)換方法?! ?計(jì)算日期的年月日時(shí)分秒,星...

    89542767 評(píng)論0 收藏0
  • 樂字節(jié)-Java8核心特性實(shí)戰(zhàn)之Lambda表達(dá)式

    摘要:使用表達(dá)式,使得應(yīng)用變得簡潔而緊湊。很多語言等從設(shè)計(jì)之初就支持表達(dá)式。表達(dá)式的參數(shù)與函數(shù)式接口內(nèi)方法的參數(shù),返回值類型相互對(duì)應(yīng)。更多教程和資料請(qǐng)上騰訊課堂樂字節(jié) showImg(https://segmentfault.com/img/bVbtotg?w=935&h=345); Java8 引入Lambda表達(dá)式,允許開發(fā)者將函數(shù)當(dāng)成參數(shù)傳遞給某個(gè)方法,或者把代碼本身當(dāng)作數(shù)據(jù)進(jìn)行處理。...

    Karuru 評(píng)論0 收藏0
  • Python完成1個(gè)全連接層的神經(jīng)元網(wǎng)絡(luò)

      本文關(guān)鍵闡述了Python完成1個(gè)全連接層的神經(jīng)元網(wǎng)絡(luò),文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,必須的朋友可以學(xué)習(xí)一下  序言  在本文中,提前準(zhǔn)備用Python重新開始完成1個(gè)全連接層的神經(jīng)元網(wǎng)絡(luò)。你可能會(huì)說,為何需要自己去完成,有許多庫和架構(gòu)能夠給我們做這些事,例如Tensorflow、Pytorch等。這兒只想說僅有自己親自完成了,就是自己的?! ∠肫鸾袢账麖慕佑|到了從事...

    89542767 評(píng)論0 收藏0
  • Java8新特性之Lambda表達(dá)式

    摘要:表達(dá)式說白了就是一種匿名方法,不需要方法名,修飾符,和返回值類型。就目前而言表達(dá)式只能簡化接口的匿名內(nèi)部類實(shí)現(xiàn)。 Lambda表達(dá)式說白了就是一種匿名方法,不需要方法名,修飾符,和返回值類型。 使用方法 首先在moudle的build.gradle文件中添加配置:app/build.gradle添加。 android { ... defaultConfi...

    mist14 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<