最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Lambda表達(dá)式基礎(chǔ)及使用

 更新時間:2021年08月25日 17:16:03   作者:季沐測試筆記  
這篇文章主要介紹了Lambda 是JDK 8 的重要新特性。它允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中),使用 Lambda 表達(dá)式可以使代碼變的更加簡潔緊湊,使Java代碼更加優(yōu)雅,感興趣的小伙伴一起來學(xué)習(xí)吧

標(biāo)準(zhǔn)格式:

三要素:形式參數(shù) 箭頭 代碼塊
格式:(形式參數(shù))->{代碼塊}
形式參數(shù):如果多個參數(shù)用逗號隔開,無參留空
->:英文中劃線和大于號組成
代碼塊:具體要做的事

使用前提:

有一個接口
接口中有且僅有一個抽象方法

一、舉例說明

1、無參無返回

1.1 定義一個接口

public interface Eatable {
    void eat();
}

1.2接口實(shí)現(xiàn)類

public class EatableImpl implements Eatable{
    @Override
    public void eat() {
        System.out.println("一天一蘋果");
    }
}

1.3 測試類

public class EatableDemo {
    public static void main(String[] args) {
        //主方法調(diào)用useEatable
        Eatable e = new EatableImpl();
        useEatable(e);
        //匿名內(nèi)部類
        useEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("一天一蘋果");
            }
        });

        //lambda表達(dá)式
        useEatable(() -> {
            System.out.println("一天一蘋果");
        });

 

    }

    private static void useEatable(Eatable e){
        e.eat();
    }
}

2、有參無返回代碼示例

public interface Eatable {
    void eat(String name);
}

public class EatDemo {
    public static void main(String[] args) {
        useEat((String name) -> {
            System.out.println(name);
            System.out.println("輸出的啥");
        });
    }

    private static void useEat(Eatable e){
        e.eat("蘋果");
    }

}

3、有參有返回

public interface Addable {
    int add(int x,int y);
}
1.
2.
3.
public class AddableDemo {
    public static void main(String[] args) {
        useAddable( (int x,int y ) -> {
            return x+y;
        });
    }

    private static void useAddable(Addable a){
        int sum = a.add(5, 7);
        System.out.println(sum);
    }

}

二、簡單事項(xiàng)

1、省略模式

  • 參數(shù)的類型可省略,多個參數(shù)時候不可只省略一個;
  • 如果參數(shù)有且僅有一個可省略大括號和分號;
  • 如果代碼塊的語句只有一條,可省略大括號和分號(有return時return也省略掉)

2、注意事項(xiàng)

  • 必須要有接口,接口中有且僅有一個抽象方法
  • 必須有上下文環(huán)境,才能推導(dǎo)出Lambda對應(yīng)的接口:局部變量的賦值、調(diào)用方法的參數(shù)

三、Lambda表達(dá)式和匿名內(nèi)部類的區(qū)別

1、所需類型不同:

  • 匿名內(nèi)部類:可以是接口,也可以是抽象類,還可以是具體類
  • Lambda表達(dá)式:只能是接口

2、使用限制不同:

  • 如果接口中有且僅有一個抽象類,兩者都可以使用
  • 接口中多于一個抽象類,只能使用匿名內(nèi)部類

3、實(shí)現(xiàn)原理不同:

  • 匿名內(nèi)部類:編譯之后,產(chǎn)生一個單獨(dú)的.class字節(jié)碼文件
  • Lambda表達(dá)式:編譯之后,沒有單獨(dú)的.class字節(jié)碼文件,對應(yīng)的字節(jié)碼會在運(yùn)行時動態(tài)的生成

到此這篇關(guān)于Java中Lambda表達(dá)式基礎(chǔ)及使用的文章就介紹到這了,更多相關(guān)Java中Lambda表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Spring Bean的基本配置

    淺談Spring Bean的基本配置

    這篇文章主要介紹了淺談Spring Bean的基本配置,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java Spring的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java?對象在?JVM?中的內(nèi)存布局超詳細(xì)解說

    Java?對象在?JVM?中的內(nèi)存布局超詳細(xì)解說

    這篇文章主要介紹了Java?對象在?JVM?中的內(nèi)存布局超詳細(xì)解說,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot整合Dubbo zookeeper過程解析

    SpringBoot整合Dubbo zookeeper過程解析

    這篇文章主要介紹了SpringBoot整合Dubbo zookeeper過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • dubbo3 filter(過濾器)如何自定義過濾器

    dubbo3 filter(過濾器)如何自定義過濾器

    dubbo3filter(過濾器)類似于javaweb中的filter和springmvc中的intercaptor,用于在請求發(fā)送前或到達(dá)前進(jìn)行預(yù)處理工作,完成限流和監(jiān)控,在dubbo中,過濾器運(yùn)行在consumer和provider兩端,分別在調(diào)用鏈中執(zhí)行
    2025-03-03
  • JSON字符串轉(zhuǎn)成java的Map對象詳細(xì)步驟

    JSON字符串轉(zhuǎn)成java的Map對象詳細(xì)步驟

    這篇文章主要介紹了如何將JSON字符串轉(zhuǎn)換為Java對象的步驟,包括定義Element類、使用Jackson庫解析JSON和添加依賴,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Java冒泡排序及優(yōu)化介紹

    Java冒泡排序及優(yōu)化介紹

    大家好,本篇文章主要講的是Java冒泡排序及優(yōu)化介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 淺談Maven resrouce下filtering作用

    淺談Maven resrouce下filtering作用

    Filtering是Maven Resources Plugin的一個功能,本文主要介紹了淺談Maven resrouce下filtering作用,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解

    Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解

    這篇文章主要介紹了Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解,當(dāng)在?web.xml?注冊了一個?Filter?來對某個?Servlet?程序進(jìn)行攔截處理時,它可以決定是否將請求繼續(xù)傳遞給?Servlet?程序,以及對請求和響應(yīng)消息是否進(jìn)行修改,需要的朋友可以參考下
    2023-08-08
  • 劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析

    劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)解析

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • SpringBoot3利用AOP實(shí)現(xiàn)IP黑名單功能

    SpringBoot3利用AOP實(shí)現(xiàn)IP黑名單功能

    在Web應(yīng)用開發(fā)中,控制對特定IP地址的訪問權(quán)限是一個常見的需求,通過實(shí)現(xiàn)IP黑白名單功能,我們可以允許某些IP地址訪問應(yīng)用,同時拒絕其他IP地址的訪問,本文將詳細(xì)介紹SpringBoot3利用AOP實(shí)現(xiàn)IP黑名單功能,并附上相應(yīng)的代碼片段,需要的朋友可以參考下
    2024-09-09

最新評論

湘西| 康定县| 台前县| 花垣县| 昌江| 嵊泗县| 霍城县| 土默特左旗| 威信县| 怀宁县| 合川市| 黔南| 色达县| 土默特左旗| 紫金县| 甘谷县| 正定县| 屏南县| 岱山县| 通化县| 嘉禾县| 阳新县| 鲁山县| 双辽市| 江孜县| 石屏县| 宝鸡市| 青河县| 彝良县| 乳山市| 满洲里市| 东乡| 墨竹工卡县| 荃湾区| 巴楚县| 上林县| 乌拉特前旗| 全南县| 黔西| 中牟县| 潜山县|