欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何理解Java中的lambda表達式

這篇文章主要介紹了如何理解Java中的lambda表達式的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何理解Java中的lambda表達式文章都會有所收獲,下面我們一起來看看吧。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都餐廳設(shè)計等,在網(wǎng)站建設(shè)公司、成都全網(wǎng)營銷、WAP手機網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。

如何理解Java中的lambda表達式

Lambda概述

Lambda表達式是JDK8開始后的一種新語法形式

作用:簡化匿名內(nèi)部類的代碼寫法

格式:

(匿名內(nèi)部類被重寫方法的形參列表)->{
    被重寫方法的方法體代碼
}
注:->是語法形式,無實際意義

首先我們先定義一個抽象類,通過匿名內(nèi)部類重寫其方法,再對其進行簡化,比較二者之間有何變化:

使用Lambda表達式之前:

public static void main (String[] args){
    People p = new People(){
    @Override
    public void run(){
        System.out.println("小學生跑的很慢");
        }
    };
    p.run();    

}
abstract class People{
    public abstract void run();
}

使用Lambda表達式之后:

People p = ()->{
    System.out.println("小學生跑的很慢");
};
//會出現(xiàn)報錯

會出現(xiàn)報錯,這是為什么呢?原因在于前面對于Lambda表達式的定義并不清晰,Lambda表達式并不能簡化所有匿名內(nèi)部類,其只能簡化函數(shù)式接口匿名內(nèi)部類的寫法形式,且接口中有且僅有一個抽象方法,通常,我們會再接口上加上一個@Functionalinterface注解,標記該接口必須是滿足函數(shù)式接口。

真正意義上通過Lambda表達式簡化:

@FunctionalInterface//加上這個注解必須是函數(shù)式接口,且只有一個抽象方法
interface People{
    void run();
}
//簡化之前的匿名內(nèi)部類
People p = new People(){
    @Override
    public void run(){
        System.out.println("小學生跑的很慢!");
    }
};
//簡化之后
People p = () -> {
        System.out.println("小學生跑的很慢!");
};

另外,也可以將其作為參數(shù)代入方法中去使用:

//在原來的基礎(chǔ)上定義一個pk方法
public static void pk(People p){
    System.out.println("跑步情況如何:")
    p.run();
}
//不使用Lambda的情況下:
pk(p);//需要在定義匿名內(nèi)部類之后,將p代入;
//使用Lambda的情況:
People p = () -> {
        System.out.println("小學生跑的很慢!");
};
pk(() -> {
        System.out.println("小學生跑的很慢!");
});
//由于等號右邊即是People創(chuàng)建的對象p,因此可以可以直接將其代入

Lambda的好處:

Lambda是一個匿名函數(shù),我們可以把Lambda表達式理解為是一段可以傳遞的代碼,它可以寫出更簡潔、更靈活的代碼,作為一種更緊湊的代碼風格,使Java語言表達能力得到了提升。

Lambda實戰(zhàn)的作用

在之前的學習過程中,我們學習過了Arrays的相關(guān)知識,其中有一個sort方法(可以將數(shù)組升序或降序排列),它其實也是接口類,并且只有一個抽象方法:

//精簡之前:
Arrays.sort(grade,new Comparator<Integer>(){
    @Override
    public int compare(Integer o1,Integer o2){
        return o2 -o1;
}
});
//精簡之后:
Arrays.sort(grade,(Integer o1,Integer o2) -> {
        return o2 -o1;
});

Lambda表達式省略規(guī)則

  • 參數(shù)類型可以省略不寫

//參考前面的實戰(zhàn)例子
Arrays.sort(grade,(Integer o1,Integer o2) -> {
        return o2 -o1;
});
//省略參數(shù)類型之后
Arrays.sort(grade,( o1, o2){
        return o2 -o1;
});
  • 如果只有一個參數(shù),參數(shù)類型可以省略,同時()也可以省略

//簡單引用一個單個參數(shù)的例子,不需要了解其具體含義
btn.addActionListener((ActionEvent e) -> {
    System.out.println("我是簡單的例子。");
});
//簡化之后:
btn.addActionListener( e -> {
    System.out.println("我是簡單的例子。");
});
  • 如果Lambda表達式的方法體代碼只有一行代碼??梢允÷源罄ㄌ柌粚?同時要省略分號

//參照上一條規(guī)則的例子
btn.addActionListener( e -> {
    System.out.println("我是簡單的例子。");
});
//簡化之后:
btn.addActionListener( e -> System.out.println("我是簡單的例子。") );
  • 如果Lambda表達式的方法體代碼只有一行代碼??梢允÷源罄ㄌ柌粚憽4藭r,如果這行代碼是return語句,必須省略return不寫,同時也必須省略";"不寫

//參照第一條規(guī)則的代碼
Arrays.sort(grade,(Integer o1,Integer o2) -> {
        return o2 -o1;
});
//簡化之后:
Arrays.sort(grade,( o1, o2)-> o2 -o1);

關(guān)于“如何理解Java中的lambda表達式”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“如何理解Java中的lambda表達式”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前題目:如何理解Java中的lambda表達式
URL分享:http://chinadenli.net/article18/joidgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計網(wǎng)頁設(shè)計公司、做網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
五月婷婷综合激情啪啪| 国产欧美一区二区三区精品视| 亚洲国产中文字幕在线观看| 亚洲欧美日本国产不卡 | 久久精品国产亚洲av麻豆尤物| 免费久久一级欧美特大黄孕妇| 久久国产人妻一区二区免费| 白白操白白在线免费观看 | 日韩国产传媒在线精品| 色偷偷偷拍视频在线观看| 欧美乱妇日本乱码特黄大片| 空之色水之色在线播放| 亚洲欧洲一区二区综合精品| 国产精品日韩欧美一区二区| 九九热视频免费在线视频| 超薄肉色丝袜脚一区二区| 日本二区三区在线播放| 日韩人妻免费视频一专区| 亚洲欧洲在线一区二区三区| 国产小青蛙全集免费看| 人妻乱近亲奸中文字幕| 欧美日韩一区二区午夜| 色播五月激情五月婷婷| 国产免费人成视频尤物| 日韩欧美综合在线播放| 国产在线一区中文字幕| 国产精品免费视频久久| 日韩不卡一区二区视频| 一区二区三区四区亚洲另类| 欧美一区二区日韩一区二区| 国产欧美日韩在线一区二区| 日本精品理论在线观看| 国内胖女人做爰视频有没有| 人人妻在人人看人人澡| 日本一品道在线免费观看| 国产午夜精品福利免费不| 欧美区一区二区在线观看| 乱女午夜精品一区二区三区| 国产麻豆精品福利在线| 亚洲高清中文字幕一区二三区| 亚洲av熟女国产一区二区三区站|